引例
brand = ['li ning','nike','aididas']
slogan = ['everything is possible','just do it','nothing is impossible']
print('李宁:',slogan[brand.index('li ning')])
字典
非BIF,为工厂函数(str int list tuple均为工厂函数)
无序
映射关系,只有一个映射类型的参数mapping
无序
映射关系,只有一个映射类型的参数mapping
例一
>>> dirc1 = {'nike':'nothing is impossible','adiads':'just do it'}
>>> print('耐克:',dirc1['nike'])
耐克: nothing is impossible1.字典的创建
①用函数dict()创建字典,用列表、括号将其伪装成一个值
①用函数dict()创建字典,用列表、括号将其伪装成一个值
例二
>>> dict3 = dict((('C','cat'),('M','mouse'),('D','dog')))
>>> dict3
{ 'C': 'cat', 'M': 'mouse', 'D': 'dog'}
例三
>>> dict3 = dict([('C','cat'),('M','mouse'),('D','dog')])
>>> dict3
{'C': 'cat', 'M': 'mouse', 'D': 'dog'} ②用关键字参数来创建字典
例四
>>> dict4 = dict(C='cat')
>>> dict4
{'C':'cat'}
例四
>>> dict4 = dict(C='cat')
>>> dict4
{'C':'cat'}
③dict.fromkeys()
创建一个新的字典(若dict1未命名,则需使用dict.fromkeys)
共有两个参数,key value(若不提供值,默认为None)
例六
>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
#例七
>>> a = dict.fromkeys((1,2),(9,2))
>>> a
{1: (9, 2), 2: (9, 2)}
>>> b = dict.fromkeys((3,4),'a')
>>> b
{3: 'a', 4: 'a'}
#例八
>>> dict3 = {1: '呵呵', 2: '呵呵', 3: '呵呵'}
>>> dict3.fromkeys(5,'哈哈')
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
dict3.fromkeys(5,'哈哈')
TypeError: 'int' object is not iterable
#例九 (fromkeys创建新字典,原字典不变)
>>> dict3 = {1: '呵呵', 2: '呵呵', 3: '呵呵'}
>>> dict3.fromkeys('5','哈哈')
{'5': '哈哈'}
>>> dict3
{1: '呵呵', 2: '呵呵', 3: '呵呵'}
2.字典中值的修改
dict[key] = value
3.字典的添加
①dict[key] = value
①dict[key] = value
②dict.setdefault()
例
例
>>> a = {1:'one',2:'two',3:'three'}
>>> a.setdefault(6)
>>> a
{1: 'one', 2: 'two', 3: 'three', 6: None}
>>> a.setdefault(7,'小白')
'小白'
>>> a
{1: 'one', 2: 'two', 3: 'three', 6: None, 7: '小白'}
4.访问字典
①keys()
dict1.keys()返回一个可迭代对象
①keys()
dict1.keys()返回一个可迭代对象
②values()
dict1.values()
③items()
dict1.items()
④get()
dict1.get(key,TempValue)
访问不存在的值时不会报错
原字典不会改变,若原值存在,则打印原值:反之,打印所给值
5.检查字典中的键是否存在(成员资格操作符)
>>> 1 in dict1
True
>>> '2' in dict1
False
>>> 1 in dict1
True
>>> '2' in dict1
False
#在字典中查找的是key,而不是value
#在序列中查找的是元素的值,而不是元素的索引号
#在序列中查找的是元素的值,而不是元素的索引号
6.清空字典
dict1.clear()
7.浅拷贝
dict1.copy()
浅拷贝和赋值的区别
例
>>> a = {1:'one',2:'two',3:'three'}
>>> b = a
>>> c = a.copy()
>>> b
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}
>>> id(a)
2115434822536
>>> id(b)
2115434822536
>>> id(c)
2115434952024
>>> b[4] = 'four'
>>> a
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> b
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}
8..pop()和.popitem()
pop给定键,弹出对应的值
popitem弹出一个项(随机)
pop给定键,弹出对应的值
popitem弹出一个项(随机)
#字典的无序性
①pop
>>> a = {1:'one',2:'two',3:'three'}
>>> a.pop()
>>> a.pop(3)
'three'
>>> a
{1: 'one', 2: 'two'}②popitem
>>> a = {1:'one',2:'two',3:'three'}
>>> a.popitem()
(3, 'three')
>>> a
{1: 'one', 2: 'two'}
>>> a = {1:'one',2:'two',3:'three'}
>>> a.popitem()
(3, 'three')
>>> a
{1: 'one', 2: 'two'}
9.字典的更新
.update()
#利用字典或映射关系来更新另一个字典
例
>>> a = {1:'one',2:'two',3:'three'}
>>> b = {'小白':'狗'}
>>> a.update(b)
>>> a
{1: 'one', 2: 'two', 3: 'three', '小白': '狗'}
686

被折叠的 条评论
为什么被折叠?



