Python - 字典的学习笔记

由 叶清风 发布

字典的定义

字典是 Python 内置的一种数据类型,使用键值对(Key: Value)的形式进行储存,且查找速度很快。字典是一种可变容器模型,可储存任意类型对象。

例:

Dictionary = {'Key': 'Value', 'Key0': 'Value0', 'Key1': 'Value1'}

简单的使用字典

创建字典

在 Python 中,字典用放在花括号中的一些列键值对表示。也可以直接使用空的花括号来创建一个空字典,例如:

Empty_Dictionary = {}

访问字典中的值

想要访问字典中的值,可以通过“字典名[键]”的形式来获取值,如“Dictionary["Key"1]”将会指向与 Key 所关联的 Value。

添加键值对

字典是一种动态的结构,可以随时在其中添加键值对。格式是“字典名[键] = 值”。

修改字典中的值

修改字典中的值得格式和添加键值对的格式是一样的,也是“字典名[键] = 值”。

如何删除字典中的键值对

当字典中的信息不被需要的时候,可以使用 del 语句将相应的键值对彻底删除,必须指定字典名和要删除的键。

例:

Test = {'OwO': 'QAQ'}
del Test['OwO']

字典一般用于储存什么

  1. 一个对象的多种信息;
  2. 多个对象的同一种信息。

当访问到字典中不存在的值需要返回一段文本时

这个时候可以使用 get() 函数,置顶想要获取的键和当这个键不存在时反馈的文本。

例:

Dictionry = {'OwO': 'QAQ'}
print(Dictionry.get('Value', 'Text'))

遍历字典

当字典中的键值对数量庞大时,支持便利字典就显得很重要。字典可用于以各种方式存储信息,因此有多种遍历方式:可遍历字典的所有键值对,也可仅遍历键或值。

遍历所有键值对

  1. 想要遍历所有键值对,首先要获取每个键值对的键和值,将他们制成一个列表,这样可以方便我们便利字典;
  2. 不能够直接通过字典来便利键值对,直接遍历字典会默认使用 key() 函数,只会获取到字典的键;
  3. 想要获取分开键和值的两个列表,需要使用 item() 函数。item() 会自动生成键和值的列表。如果使用 for 循环语句来获取这两个列表,需要使用两个变量来分别承载键和值。第一个变量会获取到全都是键的列表,第二个变量会获取到全都是值的列表。

例:

Dictionary = {
    'OwO' = 'owo'
    'QAQ' = 'qaq'
    'IwO' = 'iwo'
    }
for key, value in Dictionary.item():
    print(f'key: {key}')
    print(f'value: {value}n')

# 结果:
# key: OwO
# value: owo

# key: QAQ
# value: qaq

# key: IwO
# value: iwo

遍历字典中所有的键

  1. 可以使用 key() 函数遍历字典中的键,它会自动生成包含字典的全部的键的列表;
  2. 如果不使用 key() 函数,直接使用 for 遍历字典,会自动使用 key() 生成包含字典中全部的键的列表,然后遍历。

例:

Dictionary = {
    'OwO' = 'owo'
    'QAQ' = 'qaq'
    'IwO' = 'iwo'
    }
for key in Dictionary.key():
    print(f'key: {key}')

# 结果:
# key: OwO
# key: QAQ
# key: IwO
Dictionary = {
    'OwO' = 'owo'
    'QAQ' = 'qaq'
    'IwO' = 'iwo'
    }
for key in Dictionary:
    print(f'key: {key}')

# 结果:
# key: OwO
# key: QAQ
# key: IwO

不管带不带 key(),都会直接生成包含全部键的列表。

按照顺序遍历字典中的所有键或者值

  1. sorted() 函数可以将所以可迭代对象进行排序;
  2. 字典是可迭代对象,所以可以使用 sorted() 对字典进行排序;
  3. sorted() 函数有三个可填写的参数,分别是 iterable(必填)、key(非必填)、reverse(非必填,默认为 false。);

iterable 参数
iterable 参数需要放置需要进行排序的可迭代对象。

key 参数
key 参数需要填写一个函数,这个函数将会用于自定义的排序你在 iterable 中填写的可迭代对象。

reverse 参数
reverse 参数是决定排序是以升序还是降序的方式排列的参数。如果这个参数的位置填写的是 true,则排列按照降序排列,如果这个参数的位置填写的是 false,则排列按照升序排列。

例:

favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
    }
for name in sorted(favorite_languages.keys()):
    print(f"{name.title()}, thank you for taking the poll.")

# 结果:
# Edward, thank you for taking the poll.
# Jen, thank you for taking the poll.  
# Phil, thank you for taking the poll. 
# Sarah, thank you for taking the poll.

遍历字典中的所有的值

可以使用 values() 函数来获得一个包含字典中全部的值的列表。使用 value() 函数获取的列表并不会自动去重,如果想要给列表去重,还需要使用 set() 函数进行去重操作。

例:

Dictionarys = {'0': '0', '1': '1', '2': '1', '3':'2'}
for Dictionary in Dictionarys.values():
    print(Dictionary)

# 结果:
# 0
# 1
# 1
# 2

Dictionarys_0 = {'0': '0', '1': '1', '2': '1', '3':'2'}
for Dictionary_0 in set(Dictionarys_0.value()):
    print(Dictionary)

# 结果:
# 0
# 1
# 2

字典和列表的互相嵌套

字典和列表可以相互嵌套,字典中也可以储存字典,列表也可以用于储存列表,两者又可以相互储存。


  1. 这里的双引号是表示括住的 Key 本身是字符串。

暂无评论

发表评论