python的字典

187 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  • 字典:在python字典是一系列键值对。每个键与一个值相关联,可以使用键来访问相关联的值。

  • 字典的创建和访问

people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}
print(people)
# {'first_name': 'li ', 'last_name': 'si', 'age': 66, 'city': 'CHINA'}
print(people['first_name'])
# li
print(people['last_name'])
# si
print(people['age'])
# 66
print(people['city'])
# CHINA

  • 添加键值对
dic = dict()
dic['a'] = 1
dic['b'] = 2
dic['c'] = 3

print(dic)
# {'a': 1, 'b': 2, 'c': 3}

dic['a'] = 11
print(dic)
# {'a': 11, 'b': 2, 'c': 3}

dic['d'] = 4
print(dic)
# {'a': 11, 'b': 2, 'c': 3, 'd': 4}
  • 删除键值对
dic = dict()
dic['a'] = 1
dic['b'] = 2
dic['c'] = 3

print(dic)
# {'a': 1, 'b': 2, 'c': 3}

del dic['a']
print(dic)
# {'b': 2, 'c': 3}   其中键的删除也会伴随这值的删除
  • 使用get()来访问

如果你要获取字典里中没有的键这时候就会出错 get()的第一个参数用于指定键,是必不可少的;第二个参数为指定的键不存在的时候要返回的一个默认值,这样可以避免错误发生。

people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}

people = {'first_name': 'li ',
          'last_name': 'si',
          'city': 'CHINA'}
p = people.get('age', 'none')
# none
  • dict.fromkeys(seq[, value]) 用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
seq = ('name', 'age', 'sex')
dic1 = dict.fromkeys(seq)
print(dic1)
# {'name': None, 'age': None, 'sex': None}

dic2 = dict.fromkeys(seq, 10)
print(dic2)
# {'name': 10, 'age': 10, 'sex': 10}

  • items() 方法的遍历:items() 方法把字典中每对 key 和 value 组成一个元组,并把这些元组放在列表中返回。
people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}
print(people.items())
# dict_items([('first_name', 'li '), ('last_name', 'si'), ('age', 66), ('city', 'CHINA')])
  • dict.setdefault(key, default=None), 如果键不存在于字典中,将会添加键并将值设为默认值。
dic = {'Name': 'lisi', 'Age': 7}

print("Age 键的值为 : %s" % dic.setdefault('Age', 10))
Age 键的值为 : 7
print("Sex 键的值为 : %s" % dic.setdefault('Sex', '男'))
Sex 键的值为 : 男
print(dic)
{'Name': 'lisi', 'Age': 7, 'Sex': '男'}
  • 遍历字典
people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}
for key, value in people.items():
    print(f"{key}:{value}")
    
""" 
first_name:li 
last_name:si
age:66
city:CHINA
"""
  • 遍历字典中所有的键
people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}
for key in people.keys():
    print(f"{key}")
    
"""
first_name
last_name
age
city
"""
  • 遍历字典中所有的值
people = {'first_name': 'li ',
          'last_name': 'si',
          'age': 66,
          'city': 'CHINA'}
for value in people.values():
    print(f"{value}")
    
 """
 li 
si
66
CHINA

 """
  • 去除字典中的重复元素
people = {'first_name': 'li',
          'last_name': 'si',
          'age': 'li',
          'city': 'si'}
print(people)
#{'first_name': 'li', 'last_name': 'si', 'age': 'li', 'city': 'si'}

a = set(people.values())
print(a)
# {'li', 'si'}