d ={'a':0,'b':1,'c':2,'d':3,'e':4}# keys()for i in d.keys():print(d[i])
结果:
01234# values()for i in d.values():print(i)
结果:
01234# items()for i in d.items():print(i)print(i[1])
结果:
('a',0)0('b',1)1('c',2)2('d',3)3('e',4)4for i, j in d.items():print(i, j)
结果:
a 0
b 1
c 2
d 3
e 4
集合
集合的一些概念
集合(set类型)和列表相似
集合和列表的不同点:
1.集合中只能保存不可变对象
2.集合中元素是以无序的顺序保存的(不是按照插入顺序保存的)
3.集合中不会存在有相同的元素
创建集合
1.使用{}创建非空集合
2.用set()函数将序列和字典转换成集合
s ={1,2,10,4,5,5,4,10,2,1,1,1}
s2 =set({'a':0,'b':1,'c':2,'d':3,'e':4})print(s)print(s2)
结果:
{1,2,4,5,10}{'e','a','b','c','d'}
set_2 ={[1,2,3],[4,5,6]}# TypeError: unhashable type: 'list'print(s[0])# TypeError: 'set' object does not support indexing
集合的使用
判断是否存在于集合中 in,not in
add()向集合中添加元素
update() 将一个集合中的元素添加到另一个集合中
pop() 随机删除集合中的一个元素,具有返回值
remove() 删除集合中指定的元素
clear() 清空集合
set_1 ={'a','b',1,2,3}
set_2 =set('welcome')# in 和 not inprint('a'in set_1)# add()向集合中添加元素
set_1.add(50)# update() 将一个集合中的元素添加到另一个集合中
set_1.update(set_2)print(set_1)
结果:
{'e',1,2,3,'o','m','w','b',50,'l','c','a'}# pop() 随机删除集合中的一个元素
b = set_1.pop()print(set_1, b)
结果:
{1,2,3,'o','m','w','b',50,'l','c','a'} e
# remove() 删除集合中指定的元素
set_1.remove(50)# clear() 清空集合
set_1.clear()
集合的运算
& 交集运算
| 并集运算
差集运算
^ 亦或集运算
子集、真子集、超集、真超集
< <= > >=
s ={1,2,3,4,5,6,7}
s2 ={1,3,5,7,9,11,13}# & 交集运算
r = s & s2
print(r){1,3,5,7}# | 并集运算
m = s | s2
print(m){1,2,3,4,5,6,7,9,11,13}# - 差集运算
n = s - s2
print(n){2,4,6}
x = s2 - s
print(x){9,11,13}# ^ 亦或集运算
y = s ^ s2
print(y){2,4,6,9,11,13}# 子集、真子集、超集、真超集
a ={1,2,3}
b ={1,2,3,4,5,6}
c = a <= b
d = a < b
e = a >= b
f = a > b
print(c, d, e, f)TrueTrueFalseFalse
2.关键字传参 可以不按照形参定义的顺序传参,直接以参数名来传参 m(c = 2, b = 3, a = 1)
位置参数和关键字参数可以混合使用,但是关键字参数不能放在位置参数之前
defm(a, b, c =28):print('a =', a)print('b =', b)print('c =', c)
m(1,2,3)
结果:
a =1
b =2
c =3
m(4, c =5, b =19)
结果:
a =4
b =19
c =5
m(c =5,5, a =19)# SyntaxError: positional argument follows keyword argument