字典

来源:互联网 发布:常州java培训 编辑:程序博客网 时间:2024/05/17 07:16

这里是目录:

    • 访问字典中的值
    • 添加键-值对
    • 动态创建键-值对
    • 修改字典中的值
    • 删除键-值对
    • 遍历字典
      • 遍历所有的键-值
      • 遍历所有的键
      • 按顺序遍历所有的键
      • 遍历字典中所有的值

1. 访问字典中的值

要获取的字典中的值,需指定字典名放在方括号内的键

dic = {'a': 1}print(dict['a'])

2. 添加键-值对

字典是一种动态结构,可随时增加键-值对,指定字典名、用方括号括起的键,等于相关联的值:

dic = {'a': 1}print(dic)# 增加一个键-值dic['b'] = '2'dic['c'] = '3'print(dic)

输出结果会’a’,’b’,’c’键的位置每次打印的位置都不相同,Python不关心键-值对的顺序:

{'a': 1}{'c': '3', 'a': 1, 'b': '2'}

3. 动态创建键-值对

创建空字典方便后面动态的增加键-值对,在使用字典存储动态提供数据时用到:

# 定义空字典dic = {}for i in range(3): dic[str(i)] = input('input any value: ')print(dic)

循环次数可根据实际需要改变,产生的键-值对数量不固定,达到动态生成字典的目的:

input any value: ainput any value: binput any value: c{'1': 'b', '2': 'c', '0': 'a'}

4.修改字典中的值

修改字典中的值,指定字典名、用方括号括起的键值等于该键相关联的新值

dic = {'a': 1}print(dic)# 修改键'a'的值dic['a'] = 'one'print(dic)

5.删除键-值对

对于字典中不需要的信息,使用del语句将相应的键-值对删除,指定字典名、方括号括起的键值

dic = {'a': 1, 'f': 100}# 删除键'f'del dic['f']print(dic)

6.遍历字典

遍历字典有三种不同的方式:遍历字典的所有键-值对、键或值

遍历所有的键-值

a_person = {    'name': 'lao wang',    'age': '20',    'sex': 'male'}# 遍历字典for person_key, person_value in a_person.items():    print(" %s is %s" % (person_key, person_value))

for循环用于遍历字典,person_key 和 person_value分别存储字典的键和值,items()方法返回一个键-值对列表。

 name is lao wang sex is male age is 20

遍历所有的键

在不需要使用字典中的值时,方法keys()很有用。

a_person = {    'name': 'lao wang',    'age': '20',    'sex': 'male'}# 遍历字典中的键for person_key in a_person.keys():    print(person_key)

默认情况下,遍历字典时,就是遍历所有的键,因此上面的代码for person_key in a_person.keys()换成for person_key in a_person,同时也可以使用keys()方法判断字典中是否包含指定的键值。

a_person = {    'name': 'lao wang',    'age': '20',    'sex': 'male'}# 判断键值中是否包含了"address"if "address" not in a_person.keys():    print("the key is not exist!!")

按顺序遍历所有的键

在打印字典时,字典的顺序不可预测,如果要以特定的顺序返回元素,使用函数sorted()

dic = {    '1': 'one',    '4': 'four',    '2': 'two'}for num in sorted(dic.keys()):    print(num)

输出时,按照sorted()默认参数进行排序,得到输出:

124

sorted语法格式:sorted(iterable, key=None, reverse=False)

遍历字典中所有的值

如果只需要遍历字典中的值,使用方法values(),它返回一个列表,不包含任何键。

dic = {    '1': 'one',    '4': 'four',    '2': 'two'}# 遍历字典的值for value in dic.values():    print(value)

得到输出:

twofourone

同理,也可以对值进行排序,使用方法sorted()

dic = {    '1': 'one',    '4': 'four',    '2': 'two'}# 遍历字典的值,并进行排序for value in sorted(dic.values()):    print(value)

得到输出:

fouronetwo