希望能就以下简单问题提供一些帮助。如何迭代字典列表?我只需要每本字典的键。例如:
list_ = [{'negative': 'sad'}, {'negative': 'missed'},
{'positive': 'already :D'},{'negative': 'cry'},
{'negative': 'cheating'}, {'negative': 'worry'},
{'positive': 'Chilling'},]
我需要将键附加到以下列表 tweet_list
下面的代码有什么问题吗?对于基本问题表示歉意,但这主要是 list_ 的数据结构给我带来了麻烦。
EG:
for key in list_():
append.tweet_list(key[0])
print(tweet_list)
最佳答案
注意 Python 2 和 3 中的不同选项:
代码
[d.keys()[0] for d in list_] # python 2
[next(iter(d.viewkeys())) for d in list_] # python 2
[next(iter(d.keys())) for d in list_] # python 2/3
[k for d in list_ for k in d] # python 2/3
中间期权杠杆dictionary views与列表相反。最后一个选项最 Pythonic(由 @Yaroslav Surzhikov 建议)。
<小时/>时间
通过 %timeit -n 100000
在 Python 3 中确认(只要可能):
- 6.58 µs:
[list(d.keys())[0] for d in list_]
- 3.23 µs:
[d.keys()[0] for d in list_]
- 3.97 µs:
[next(iter(d.viewkeys())) for d in list_]
- 4.52 µs:
[next(iter(d.keys())) for d in list_]
- 1.75 µs:
[list 中 d 的键_ d 中键的键]
@Yaroslav Surzhikov 的贡献
关于python - 迭代字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327730/