python基础4:列表、元组、字典
1、列表
list = []
列表在内存存储中是不连续的,每个元素会记录自己下一个元素的位置来查找,所以列表元素是可以被修改的,通过索引修改

修改:list[索引] = XXX, list[索引:索引] = 通过删除再新增达到修改效果
删除:del list[索引],del list[索引:索引]
(单个数字无法进行迭代)
列表中如果只包含字符串,可以用join来拼接成字符串,如果既包含数字,又包含字符串,则无法使用join,应该使用遍历循环来处理
方法:
list1 = [1,2,3,4,"aa"]
append(str):追加,list1.append("aaa"),只能追加单个元素,无需赋值,直接追加
copy():list1.cpoy()
clear():list1.clear()
count(str):list1.count("aa"),计算元素出现的次数
extend():list1.extend(“”,“”),可追加多个元素,无需赋值,直接追加
append,extend对比: aa = [1, 2, 'a'] bb = [1, 2, 'a'] bb.append(["aaa", "bbb"]) aa.extend(["aaa", "bbb"]) print(aa) print(bb) #输出结果: #[1, 2, 'a', 'aaa', 'bbb'] #[1, 2, 'a', ['aaa', 'bbb']]
index(value,start,end):查找value在列表中的索引位置
insert(index,value):在索引位置中插入元素,list1.index(0,"aaa")
pop(index):删除最后一个元素,并获取删除的值,可以添加参数索引删除
remove(value):删除指定的元素,只能删除一个,无法删除重复 的值,从左边起
reverse():反转顺序,从后往前排序
赋值后,原值发生改变,被赋值的变量也会发生改变,如果需要生成一个完全新的值,可以使用以下:
sort():排序,默认从大到小排序,如果反转需要添加参数reverse = True
import copy aa = [1, 2, 'a'] bb = copy.deepcopy(aa) aa.append("dasdad") print(aa) print(bb)
2、元组
tuple1 = (1,2,"a",)
元组类似与列表,但是有很大的区别
元组不能被增删改
可索引,可切片,可迭代,可转换
元组的一级元素不能修改,如果一级元素中包含的二级元素是个列表,则可以增删改二级元素中的值
tuple1 = (11, "aaa", ["q", "ww"], True) tuple1[2][0] = "Q" print(tuple1) #输出结果: #(11, 'aaa', ['Q', 'ww'], True)
方法:
count(str):计算元素出现的次数
index(value,start,end):查找value在列表中的索引位置
3、字典
特点
键值对,key:value,dict
键:布尔值、列表、字典不能作为键,键如果有重复,只能保留一个
字典是无序的,不能切片
支持del删除 del dict1[key]
方法:
keys()、values(),可以通过遍历这两个值获取key和value,for key2 in keys(),for value1 in values()
items():遍历该字段,获取key,value,for key,value in items():
clear():
copy():
fromkeys:staticmethod静态方法,使用方法:类.方法,dict.fromkeys()
v = dict.fromkeys(["a","b","c"],"111") print(v) #输出结果: #{'a': '111', 'b': '111', 'c': '111'}
v = dict.fromkeys(["a","b","c"],"111") print(v) #输出结果: #{'a': '111', 'b': '111', 'c': '111'}
get(key,default=None):dic1.get("a","AB"),通过key获取value,如果没有key,则不会像 dict1[key] 一样报错,默认返回None,也可自定义返回值
dict1 = {"a":"1","b":"2","c":"3"}
dica = dict1.get("v","AB")
print(dica)
#输出结果:
#AB
pop(key,defaut=None):删除并返回value,如果没有key,默认返回None,也可自定义返回值
popitem():随即删除一对,返回key,value
update(key:value):更新字典,如果存在则替换value,不存在则新增键值对
setdefault():设置一个值,如果不存在,则为传送的值,如果存在,则不改变任何,两种都返回现在的vaule
dict1 = {"a":"1","b":"2","c":"3"}
dica1 = dict1.setdefault("a","AB")
dica2 = dict1.setdefault("v","AB")
print(dict1,dica1)
print(dict1,dica2)
#输出结果
#{'a': '1', 'b': '2', 'c': '3'} 1
#{'a': '1', 'b': '2', 'c': '3', 'v': 'AB'} AB
另:
布尔值判断:
以下都为False:
0,None,"",{},[],()
bool(0):False
bool({}):False
......
4、集合
特点:
不同元素组成:元素元素只保存一个元素
不可改变:元素有数字、字符串、元组组成,列表、字典不能作为元素
无序:排列无顺序,不能用索引查找
set(),s = {1,"aaa",(1,"aaa")}
s = set(["aaa","bbb","aaa"])
{"bbb","aaa"}
方法:
add():add("ccc")
clear()
copy()
pop(),随机删除
remove("aaa"):指定元素删,不存在会报错
discard(“aaaa”):删除元素,不存在不会报错
intersection():求交集,a.intersection(b) ====a&b
union():求并集,a.union(b) ======a|b
a-b:差集,去除ab相同部分,保留a的不同部分
difference():差集,a,difference(b) || a-b
symmetric_difference():交叉补集,a.symmetric_difference(b),合并后去除相同部分
a^b
a = {1,2,3}
b = {3,4,5}
print(a&b)
print(a|b)
print(a-b)
print(a^b)
#输出结果:
#{3}
#{1, 2, 3, 4, 5}
#{1, 2}
#{1, 2, 4, 5}
a.issubset(b):判断a是否是bde子集,True,False
a.issuperset(b):判断a是否是b的父集,True,False
update():更新多个值
fronzenset():将其他类型转换为不可变集合

浙公网安备 33010602011771号