Python 字典与切片(代码片段)
一、字典访问
dict = {"age":18,"weight":65} print(dict.get("age"))
print(dict.get("height")) # 由于字典dict中没有height这个键,返回的是默认值None。
print(dict.get("height",0)) # 将默认值改为0,输出结果为0
和dict[key]的区别:
dict.get(key)和dict[key]在key值存在的情况下,都能得到对应的键值。但是当使用dict[key]时,key必须要存在,否则会报错。但是dict.get[key]中的key可以不存在,因为get方法有一个默认的参数None,当key不存在的时候,返回None。
dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': 3, '喜剧': 2, '冒险': 2, '悬疑': 2, '惊悚': 2, '奇幻': 1}
#通过list将字典中的keys和values转化为列表 keys = list(dic.keys()) values = list(dic.values())
d = {'x': 1, 'y': 2, 'z': 3} for the_key, the_value in d.items(): print(the_key, 'corresponds to', the_value)
x corresponds to 1
y corresponds to 2
z corresponds to 3
for i, (key, value) in enumerate(d.items(),start=100): print(i, key, value)
100 x 1
101 y 2
102 z 3
for key in d: print(key)
x
y
z
print(list(d)) print(list(d.values())) print(list(d.items()))
['x', 'y', 'z']
[1, 2, 3]
[('x', 1), ('y', 2), ('z', 3)]
二、字符串切片
str = 'abcd123' print(str[:-2]) # 去掉后面2个字符 print(str[1:-2]) # 从第2个截取,去掉后面2个字符 print(str[0]) # 输出字符串第一个字符 print(str[2:5]) # 输出从第三个开始,取3个字符 print(str[2:]) # 输出从第三个开始的后的所有字符 print(str * 2) # 输出字符串两次
结果:
abcd1
bcd1
a
cd1
cd123
abcd123abcd123
三、生成字典的三种方法
# 方法1 dic1 = { 'Author' : 'Python当打之年' , 'age' : 99 , 'sex' : '男' } # 方法2 lst = [('Author', 'Python当打之年'), ('age', 99), ('sex', '男')] dic2 = dict(lst) # 方法3 dic3 = dict( Author = 'Python当打之年', age = 99, sex = '男') # 方法4 list1 = ['Author', 'age', 'sex'] list2 = ['Python当打之年', 99, '男'] dic4 = dict(zip(list1, list2))
字典清空
dic1.clear() # dic1 = {}
不管以前有什么数,clear后变空
从list创建dict
dict.fromkeys() 使用给定的多个键创建一个新字典,值默认都是 None,也可以传入一个参数作为默认的值。 list1 = ['Author', 'age', 'sex'] dic1 = dict.fromkeys(list1) dic2 = dict.fromkeys(list1, 'Python当打之年') # dic1 = {'Author': None, 'age': None, 'sex': None} # dic2 = {'Author': 'Python当打之年', 'age': 'Python当打之年', 'sex': 'Python当打之
get()取值,可以设默认值
list1 = ['Author', 'age', 'sex'] list2 = ['Python当打之年', [18,99], '男'] dic1 = dict(zip(list1, list2)) Author = dic1.get('Author') # Author = Python当打之年 phone = dic1.get('phone') # phone = None phone = dic1.get('phone','12345678') # phone = 12345678
dict.update(dict1) 将字典dict1的键-值对更新到dict里,包含对应的键-值对,那么原键-值对会被覆盖,被更新的字典中不包含对应的键-值对,则添加该键-值对。
dic1 = {'Author': 'Python当打之年'}
dic2 = {'Author': '当打之年', 'phone': 12345678}
dic1.update(dic2)
print('dic1 = ',dic1)
# dic1 = {'Author': '当打之年', 'phone': 12345678}