标签:长度 输出 mos for inf cal syntax class 删除元素
一、字典
1、字典的定义:{ } <class ‘dict‘>
>>> dict1 = {} >>> type(dict1) <class ‘dict‘>
2、dict1 = {键1:值,键2:值}
dict2 = {‘name‘: ‘Tom‘, ‘age‘:18, ‘weight‘: 130}
3、键值成对出现,不然会报错。
>>> dict2 = {‘name‘: ‘Tom‘, ‘age‘:18, ‘weight‘: 130}
>>> dict3 = {‘name‘: ‘jacky‘, ‘age‘: 18, ‘class‘}
SyntaxError: invalid syntax
4、通过键来查找元素,没有下标的概念。
>>> dict2 = {‘name‘: ‘Tom‘, ‘age‘:18, ‘weight‘: 130}
>>> dict2[‘weight‘]
130
1)用len(dict1)来获取字典的长度
>>> dict2 = {name:‘Tom‘, age:18 , weight:130}
>>> len(dict2)
3
5、字典里没有同名的key(键),就算有,后面的key也会把前面同名的key覆盖掉。
>>> dict3 = {‘name‘:‘Tom‘, ‘age‘:18, ‘name‘:‘Jacky‘}
>>> dict3
{‘name‘: ‘Jacky‘, ‘age‘: 18}
6、增加元素----格式:dict1[键名] = 值
1)python2--增加字典元素的位置是随机的;
2)python3--从字典后面依次增加
>>> dict3 = {‘name‘:‘Tom‘, ‘age‘:18}
>>> dict3[‘weight‘] = 136
>>> dict3
{‘name‘: ‘Tom‘, ‘age‘: 18, ‘weight‘: 136}
7、如果该字典里面没有这个key,那么打印这个key对应的值会报错----keyerror
>>> dict3 = {‘name‘: ‘Tom‘, ‘age‘: 18, ‘weight‘: 136}
>>> print(dict3[‘class‘])
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
print(dict3[‘class‘])
KeyError: ‘class‘
8、增加字典的元素:dict1[新键名] = 对应的值
9、字典可以存储任意类型
# 一个键对应的值可以是任意类型 students = { ‘Jim Green‘: {‘age‘: 18, ‘height‘: 186, ‘weight‘: 180, ‘nickname‘: ‘Jimy‘}, ‘Linda Smith‘:{ ‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘ } } print(students[‘Linda Smith‘]) # 执行结果 {‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘}
打印Jim的年龄信息
print(students[‘Jim Green‘][‘age‘]) # 打印Jim的年龄 #输出结果 18
10、关于key的类型,value的类型
1)key的类型:int、str、float和tuple,但是不能为list(列表)、dict(字典)。hash:散列表----不能改变的类型
注意:对键值操作时不要刻意改变key。
>>> dict1 = {1: ‘int型‘, 3.14: ‘float型‘, ‘yy‘: ‘str型‘, (6,7,8,9): ‘tuple型‘}
>>> dict1
{1: ‘int型‘, 3.14: ‘float型‘, ‘yy‘: ‘str型‘, (6, 7, 8, 9): ‘tuple型‘}
当key的类型为列表时会报错
>>> dict1 = {[1,2,‘yy‘]: ‘list型‘}
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
dict1 = {[1,2,‘yy‘]: ‘list型‘}
TypeError: unhashable type: ‘list‘
key的类型为字典也报错
>>> dict1 = {{‘name‘: ‘Tom‘}: 33}
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
dict1 = {{‘name‘: ‘Tom‘}: 33}
TypeError: unhashable type: ‘dict‘
2)value(值):可以为任意类型
二、常用操作
1、判断字典里是否有这个key,可以用---key in dict1;在python2中dict1.has.key(键)的形式。
>>> dict1 = {1: ‘int型‘, 3.14: ‘float型‘, ‘yy‘: ‘str型‘, (6,7,8,9): ‘tuple型‘}
>>> 3.14 in dict1
True
>>> ‘xx‘ in dict1
False
2、关于字典的删除元素:字典里面的key相当于list里面的index(下标)
1)del dict1[‘name‘]
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> del dict1[‘name‘]
>>> dict1
{‘age‘: 21, ‘weight‘: 130}
2) value = dict1.pop(‘name‘)
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.pop(‘name‘)
‘Tom‘
>>> dict1
{‘age‘: 21, ‘weight‘: 130}
3、字典的遍历
1)for one in dict1 ----one依次取key本身的值
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> for one in dict1:
print(one)
name
age
weight
2)打印字典的值----dict的[one]
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> for one in dict1: # one 指的是字典值的内容
print(dict1[one])
Tom
21
130
3)打印字典特定的值-----dict1[one[‘age‘]]
students = { ‘Jim Green‘: {‘age‘: 18, ‘height‘: 186, ‘weight‘: 180, ‘nickname‘: ‘Jimy‘}, ‘Linda Smith‘:{ ‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘ } } for one in students: print(students[one][‘age‘]) # 执行结果 18 23
4)students.items()----遍历字典的键值对[(键1, 值1), (键2, 值2)]
print(students.items()) # 结果是一个列表,列表中包含元组 dict_items([(‘Jim Green‘, {‘age‘: 18, ‘height‘: 186, ‘weight‘: 180, ‘nickname‘: ‘Jimy‘}), (‘Linda Smith‘, {‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘})])
把信息从students.items()中取出来---for name, info in students.items():
students = { ‘Jim Green‘: {‘age‘: 18, ‘height‘: 186, ‘weight‘: 180, ‘nickname‘: ‘Jimy‘}, ‘Linda Smith‘:{ ‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘ } } for name, info in students.items(): print(name, info) # 执行结果 Jim Green {‘age‘: 18, ‘height‘: 186, ‘weight‘: 180, ‘nickname‘: ‘Jimy‘} Linda Smith {‘age‘: 23, ‘height‘: 168, ‘weight‘: 108, ‘nickname‘: ‘sweet‘}
4、清空字典内容:
1)dict1.clear()----清空字典本身内容
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.clear()
>>> dict1
{}
2)dict1 = {}---把dict1指向一个空字典
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1 = {}
>>> dict1
{}
5、获取字典中所有的key----dict1.keys(),返回结果在一个列表中
dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.keys()
dict_keys([‘name‘, ‘age‘, ‘weight‘])
6、获取字典中所有的value-----dict1.values(),返回结果在一个列表中
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.values()
dict_values([‘Tom‘, 21, 130])
7、获取字典中所有的key,value,返回结果在一个列表中
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.items()
dict_items([(‘name‘, ‘Tom‘), (‘age‘, 21), (‘weight‘, 130)])
8、dict1.update----增加字典的元素
>>> dict1 = {‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130}
>>> dict1.update({1:1, 2:2})
>>> dict1
{‘name‘: ‘Tom‘, ‘age‘: 21, ‘weight‘: 130, 1: 1, 2: 2}
练习:2个字典所有的key都一样,请打印具有相同的键值,并打印键值对
dict1 = {1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: 100, 5: 200}
dict2 = {1: ‘x‘, 2: ‘y‘, 3: ‘z‘, 4: 100, 5: 200}
for num1 in dict1:
for num2 in dict2:
if num1 == num2 and dict1[num1] == dict2[num2]:
print(num1, dict1[num1])
# 执行结果
4 100
5 200
标签:长度 输出 mos for inf cal syntax class 删除元素
原文地址:https://www.cnblogs.com/nick1998/p/10061744.html