元组的解包
例如
tuple=1,2,3,'ab' 或者写成tuple=(1,2,3,'ab')
a,b,*c=tuple
print(f'a={a}') #这里的f 可以先看下第三章的占位符讲解
print(f'b={b}')
print(f'c={c}')
结果
a=1
b=2
c=[3, 'ab']
{key:value,key:value…}
例如a={‘a’:1,‘b’:2,‘c’:3}
字典中的键是不能重复的,如果重复后面的会替换前面的
命令 | 作用 |
---|---|
dict() | 创建字典 |
d= dict(name='陈世美',age=23)
print(d)
----------------------
{'name': '陈世美', 'age': 23}
扩展
dict()函数也可以将一个包含有双值子序列转换为字典,比如说[(),()] 这种列表是一个序列,里面的包含元素的元组也是一个序列,如果这个元组里面有两个值,就叫双值子序列。
例如
d = dict([(‘name’,‘陈世美’),(‘age’,23)]) ,结果如上
命令 | 作用 |
---|---|
len() | 获取字典中键值对的个数 |
d=len({'a':1,'b':2})
print(d)
------------
2
命令 | 作用 |
---|---|
get() | 根据键来获取字典当中的值 |
d= dict(name='陈世美',age=23)
print(d.get('age'))
--------------------------
23
扩展
get(key,[default]) 该方法是用来根据键来获取字典当中的值。
如果字典当中没有这个Key值,会返回一个None,也可以指定一个默认值。来作为第二个参数,这样获取不到Key值的时候就返回默认值.
命令 | 作用 |
---|---|
update() | 将其他字典当中的key-value添加到当前字典当中 |
d1 = {'a':1,'b':2}
d2 = {'c':3,'d':4}
d1.update(d2)
print(d1)
print(d2)
--------------------------
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
{'c': 3, 'd': 4}
命令 | 作用 |
---|---|
del | 删除字典中的key-value |
d = {'a':1, 'b':2}
del d['a']
print(d)
--------------------
{'b': 2}
命令 | 作用 |
---|---|
setdefault(key,[default]) | 向字典中添加 key-value(如果key存在返回value,没有则添加) |
d = {'a':1, 'b':2}
a=d.setdefault('c',3)
print(a)
print(d)
--------------------
3
{'a': 1, 'b': 2, 'c': 3}
命令 | 作用 |
---|---|
pop(key,[default]) | 根据Key来删除 key-value(如果这个key不存在,返回则会报错,但是也可以添加默认返回的报错内容,则不会报错) |
d={'c': 3, 'd': 4, 'e': 5}
result = d.pop('c')
print(result)
print(d)
--------------------
3
{'d': 4, 'e': 5}
命令 | 作用 |
---|---|
copy() | 浅复制只会复制字典的本身,如果字典中还有个字典是不会被复制的(复制的变量如果更改字典里面的字典,则会更改原复制对象) |
d = {'a':{'name':'陈','age':23},'b':2,'c':3}
d1 = d.copy()
d1['a']= '1'
print('d = ',d,id(d))
print('d1 =',d1,id(d1))
--------------------------------------------------
d = {'a': {'name': '陈', 'age': 23}, 'b': 2, 'c': 3} 2677564722456
d1 = {'a': '1', 'b': 2, 'c': 3} 2677564727448
但是如果这么更改,则两个变量都会变化,因此只是浅复制。
d = {'a':{'name':'陈','age':23},'b':2,'c':3}
d1 = d.copy()
d1['a']['name']= 'hi'
print('d = ',d,id(d))
print('d1 =',d1,id(d1))
--------------------------------------------------------
d = {'a': {'name': 'hi', 'age': 23}, 'b': 2, 'c': 3} 1942382005528
d1 = {'a': {'name': 'hi', 'age': 23}, 'b': 2, 'c': 3} 1942382010520
d[‘name’] = ‘陈圆圆’ # 修改字典中的key-value(key存在的情况下)
d[‘phone’] = ‘123456789’ # 向字典中添加 key-value(key不存在查询不到的请情况下)
d = {'a':1, 'b':2}
for m in d.keys():
print(m)
-----------------------
a
b
d = {'a':1, 'b':2}
for n in d.values():
print(n)
------------------------------
1
2
for m,n in d.items():
print(m,n)
------------------------
a 1
b 2
集合和列表非常相似,但是有所不同,不同点如下
举例
d={1,2,3,4,5} <------这就是一个集合
set() 可以将序列和字典转换为集合,将字典转换为集合的时候,只会包含字典中的键。
s = set({'a':1,'b':2,'c':3})
print(s, type(s))
---------------
{'c', 'a', 'b'} #对应上面的无序哦
s1 = {1,2,3,4}
s2 = {3,4,5,6}
运算 | 举例 | 结果 |
---|---|---|
交集 & | r = s1 & s2 | {3, 4} |
并集 | | r = s1 | s2 | {1, 2, 3, 4, 5, 6} |
差集运算 - | r = s1 - s2或(r=s2-s1) | {1,2} 或 ({5, 6}) |
异或集运算 ^ | r = s1 ^ s2 | {1, 2, 5, 6} |
注:结果省略print(r)
返回的是布尔类型
a = {1,2,3}
b = {1,2,3,4,5}
符号 | 举例 | 结果 |
---|---|---|
<= 检查一个集合是否是另一个集合的子集 | r = a <= b | True |
< 检查一个集合是否是另一个集合的真子集 | r = a < b | True |
>=检查一个集合是否是另一个集合的超集 | r=a >=b | False |
>检查一个集合是否是另一个集合的真超集 | r=a >b | False |
注:结果省略print(r)
s = {‘a’,1,2,3}
命令 | 作用 | 举例 | 结果 |
---|---|---|---|
add() | 向集合中添加元素 | s.add(4) | {‘a’, 2, 3, 4, 1} |
remove() | 删除集合中指定的元素 | s.remove(a) | {3, 1, 2} |
update() | 将一个集合中的元素添加到另一个集合中 | s.update({‘m’,5}) | {1, 2, 3, 5, ‘m’, ‘a’} |
pop() | 随机删除某一个元素 | s.pop() | {2, 3, ‘a’} |