(一)字典(无序,能够修改,键不能够重复,值能够重复)app
每对键值组合称为项,字典跟序列不一样,序列讲究顺序,字典讲究映射,不讲顺序。three
注意:字典的键必须是独一无二,而值能够多种数据类型,可是键取自不可改变的数据类型(如字符串、数值型或元组)。键值惟一,值不惟一。ip
1.字典的建立(至少五中方法)rem
a = dict(one=1,two=2,three=3,four="肆")字符串
b = {"one":1,"two":"贰","three":3,"four":4}get
c = dict(zip(["one","two","three","four","five"],["壹","贰","叁","肆","伍"]))it
d = dict([("two",2),("one",1),("three",3),("four,4")]) 或d = dict((("two",2),("one",1),("three",3),("four,4")))date
e = dict({"three":3,"two":"贰","one":1})遍历
g = dict.fromkeys(seq[,val]) 建立一个新字典,以序列seq中元素,作字典,val作值数据类型
2.字典的访问
建立一个空子典 dict1 = {}
dict2 = dict.fromkeys(range(32),"赞")
print(dict2.keys()) #输出全部键组成的列表
print(dict2.values()) #输出全部组成的列表
print(dict2.items()) #输出全部的键值对组成的列表
3.获取内容
dict3 = {}
dict4 = dict3.fromkeys(range(5),"赞")
print(dict4.get(4)) #输出0~4都是赞,而其余值都是None
print(dict4.get(10),"木有") #给不存在的键赋值默认值
4.清空字典clear()删除字典内全部元素
dict5 = {"name":"张三","sex":"男","age":18}
print(dict5.clear())
5.删除字典
dict6 = {"name":"李丽","sex":"女","age":18}
del dict6
dict6.pop(name) #经过指定键来键对应的值,同时显示删除键所对应的值
dict6.popitem() #随机删除一项键值对
6.拷贝字典,返回一个字典的浅复制
dict6 = {"name":"李丽","sex":"女","age":18}
dict7 = dict6.copy()
print(dict7)
7.更新字典
dict8 = {"米奇":"老鼠","汤姆":"猫","小白":"猪"}
dict8.update(小白="狗")
注意:当一个字典中有重复的键所对应的值时,后面的健值对会替换掉前面的健值对
8.统计字典的长度
dict8 = {"米奇":"老鼠","汤姆":"猫","小白":"猪"}
len(dict8)
str(dict8) 以字符串形式输出字典
print("value:",dict8.__contains__("米奇")) 判断键是否在字典内,若是在返回True,不在返回False
9.遍历嵌套字典
def dict9_list(d,l):
for x in d.keys():
if type(d[x]) == dict:
dict9_list(di[x],l)
else:
l.append(d[x])
d = {1:"a",2:"b",3:{4:"c",5:"d",6:{7:"e"}},8:"f"}
l = []
dict9_list(d,l)
print(l)
(二)集合,你是个人惟一,个人心中只有你(无序,不能够修改,不能够重复)(能够用做去重元素)
1.集合建立
set1 ={1,2,3,4,5,6}
set2 = set([1,2,3,4,5,6])
set1 == set2
2.访问集合
set3 = {1,2,3,4,5,6,3,7,8,9,9}
for each in set3:
print(each,end=" ")
能够使用 in和not in 来判断一个元素是否在集合中已经存在
>>>2 in set3 #True >>>2 not in set3 #False
使用add()方法能够给集合添加元素,使用remove()方法删除集合中已知的元素
>>>set3.add(11)
>>>set3
{1,2,3,4,5,6,7,8,9,11}
>>>set3.remove(5)
>>>set3
{1, 2, 3, 4, 6, 7, 8, 9}
3.不可变集合(冰冻集合frozenset())
>>>set4 = frozenset({1,2,3,4,5})
>>>set4.add(6)
报错:由于冰冻集合没有add属性