python - 迭代字典列表

标签 python list dictionary for-loop

希望能就以下简单问题提供一些帮助。如何迭代字典列表?我只需要每本字典的键。例如:

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 中确认(只要可能):

  1. 6.58 µs:[list(d.keys())[0] for d in list_]
  2. 3.23 µs:[d.keys()[0] for d in list_]
  3. 3.97 µs:[next(iter(d.viewkeys())) for d in list_]
  4. 4.52 µs:[next(iter(d.keys())) for d in list_]
  5. 1.75 µs:[list 中 d 的键_ d 中键的键]

@Yaroslav Surzhikov 的贡献

关于python - 迭代字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327730/

相关文章:

python - Python 中的协同过滤

python - 导入错误 : cannot import name 'LatentDirichletAllocation' when importing PCA

python - 是否有用于字符串自然排序的内置函数?

c# - 使用 LINQ 将一个列表中的值分配给另一个列表

javascript - 我如何替换状态(数组)ReactJs

python - 如何小写字符串的第一个字符?

python - 按值对元组排序,当值相等时使用列表

python - 数字到 ASCII 字符串转换器

c# - 从字典中获取最接近的可用值

c# - 为什么 .Net 词典看起来像是经过排序的?