如何在 Python 中将字典键作为列表获取 | 您所在的位置:网站首页 › python取字典中值的键 › 如何在 Python 中将字典键作为列表获取 |
dict.keys() 获取 Python 字典键
循环获取 Python 字典键
列表推导式以获取 Python 字典键
Python 字典解包*运算符获取键值
字典键作为列表获取不同方法的性能比较
我们在本教程中将来介绍如何将字典中的键值以列表形式读出。 我们有几种方法可以实现它,每种方法都有不同的性能特征。 dict.keys() 获取 Python 字典键dict.keys() 函数返回 dict_keys-字典键的可迭代表现。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> state_capitals.keys() dict_keys(['California', 'Pennsylvania', 'Texas'])你可以对 dict_keys 直接进行迭代,而无需将其转换为列表。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> for state in state_capitals.keys(): ... print(state) ... California Pennsylvania Texas例如,如果你需要严格按照列表来处理字典键,例如,如果你希望能够使用索引来读取序列中的特定键,则应首先转换 dict_keys 为列表。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> list(state_capitals.keys()) ['California', 'Pennsylvania', 'Texas']请注意,如果要获取键值作为列表,则调用 dict.keys() 是可选的。由于 Python 字典可在其键上进行迭代,因此你可以将字典本身传递给列表构造函数。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> list(state_capitals) ['California', 'Pennsylvania', 'Texas'] 循环获取 Python 字典键Python 中字典的一个特殊特性是,当你迭代它们时,便会迭代它们的键。因此,你可以通过迭代来简单地得到所有字典键。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> keys = [] >>> for key im state_capitals: ... keys.append(key) ... >>> keys ['California', 'Pennsylvania', 'Texas'] 列表推导式以获取 Python 字典键使用循环的语法改进可以使用 Python 的列表推导式。通过列表推导,你可以将以上循环压缩为单行。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> keys = [key for key in state_capitals] >>> keys ['California', 'Pennsylvania', 'Texas'] Python 字典解包*运算符获取键值从 Python 3.5 开始,我们可以使用 unpack *运算符来得到字典键。PEP 448-中引入了此功能。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> keys = [*state_capitals] >>> keys ['California', 'Pennsylvania', 'Texas']这种方法的好处是,你可以将字典键解包到列表之外的其他集合中,例如元组或集合。 >>> state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'} >>> keys_tuple = *state_capitals, >>> keys_tuple ('California', 'Pennsylvania', 'Texas') >>> keys_set = {*state_capitals} >>> keys_set {'California', 'Pennsylvania', 'Texas'} 字典键作为列表获取不同方法的性能比较上述每种方法的运行时性能都各不相同。 >>> from timeit import timeit >>> timeit("list(state_capitals.keys())", setup="state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'}") 0.25394885599962436 >>> timeit("list(state_capitals)", setup="state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'}") 0.17995373999929143 >>> timeit("for key in state_capitals: keys.append(key)", setup="keys = []; state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'}") 0.25294865500018204 >>> timeit("[key for key in state_capitals]", setup="state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'}") 0.2447525150000729 >>> timeit("[*state_capitals]", setup="state_capitals = {'California': 'Sacramento', 'Pennsylvania': 'Harrisburg', 'Texas': 'Austin'}") 0.0962776809992647从上述时间来看,* 运算符是最快的。 我们推荐优先使用它,除非你有充分的理由采用其他方法。 |
CopyRight 2018-2019 实验室设备网 版权所有 |