在 Python 中,如果想要将一个字典转换为一个列表,常用的有以下 3 种方式。
- 使用 list() 函数。
- 使用 keys()、values() 或 items() 方法。
- 使用列表推导式。
使用 list() 函数
list() 是 Python 的一个内置函数,它接收一个可迭代对象作为参数,然后返回一个列表。换句话来说,list() 函数可以将 “其他可迭代对象” 转换为 “列表”。
语法:
list(iterable)说明:
list() 接收单个参数。
iterable(可选):是一个可迭代对象。如果 iterable 省略,则返回一个空列表;如果 iterable 不省略,则创建一个由可迭代项组成的列表。
示例 1:list() 将字典转为列表
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = list(students)
print(result)运行结果如下。
['Jack', 'Lucy', 'Tony']分析:
需要注意的是,如果 list() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个列表。
使用 keys()、values() 或 items() 方法
在 Python 中,我们可以使用字典的 keys()、values() 和 items() 这 3 种方法来将一个字典转换为一个列表。
字典的 keys()、values() 和 items() 这 3 种方法返回的结果都不是列表,而是一种视图(view),也叫做字典视图对象。但是我们可以进一步使用 list() 函数将其转换为列表。
示例 2:keys() 将字典转为列表
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
keys = students.keys()
result = list(keys)
print(keys)
print(result)运行结果如下。
dict_keys(['Jack', 'Lucy', 'Tony'])
['Jack', 'Lucy', 'Tony']分析:
keys() 方法获取的是字典所有的键。
示例 3:values() 将字典转为列表
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
values = students.values()
result = list(values)
print(values)
print(result)运行结果如下。
dict_values([1001, 1002, 1003])
[1001, 1002, 1003]分析:
values() 方法获取的是字典所有的值。
示例 4:items() 将字典转为列表
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
items = students.items()
result = list(items)
print(items)
print(result)运行结果如下。
dict_items([('Jack', 1001), ('Lucy', 1002), ('Tony', 1003)])
[('Jack', 1001), ('Lucy', 1002), ('Tony', 1003)]分析:
items() 方法获取的是字典所有的键和值(以元组的形式组成列表)。
使用列表推导式
在 Python 中,我们可以使用 “推导式” 快速生成一个列表。这种方式叫 “列表推导式” 或 “列表生成式”。
列表推导式是 “very Python” 的循环方式,它不仅体现了 Python 简洁优美的思想,而且比普通的循环方式更加简洁高效。
语法:
列表名 = [表达式 for 变量 in 可迭代对象]说明:
在该语法中,前面的 “表达式” 一般需要用到后面的 “变量”,这是列表推导式非常重要的特点。
示例 5:列表推导式将字典转为列表
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = [key for key in students.keys()]
print(result)运行结果如下。
['Jack', 'Lucy', 'Tony']分析:
上面例子是获取字典所有的键,并将其组成一个列表返回。如果你想要获取字典所有的值,可以使用下面代码来实现。
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = [value for value in students.values()]
print(result)