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}

 

原文地址:https://www.cnblogs.com/lxgbky/p/12579548.html