python - 如何创建 key 列表 :value pairs in a for loop?

标签 python dictionary append key-value

<分区>

我有一个 for 循环,它输出 15 个值的列表:

for line in data: 
    line # type(line) is `<class 'list'>`
        # do things with line

始终是一个包含 11 个值的 Python 列表,即

['value1', 'value2', 'value3', 'value4', ... ] 

我有一个字典键列表,是我手动创建的:

['key1', 'key2', 'key3', ...]

我想将我的键连接到 for 循环中每一行的每个值。因此,我可以定义一个新行,看起来像

 ['key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... ]

这将在 for 循环中使用,即

for line in data: 
    line # values
    # join key-value pairs
    # new_line = ['key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... ]
        # do things with new_line

编辑:我不认为这是一个重复的问题。 zip(keys, values) 没有产生预期的结果。

EDIT2:在列表中创建一个大字典会更容易吗?

[{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... }]

或者可能是制表符分隔的测试文件?

key1:value1 key2:value2 key3:value3 ....

最佳答案

如果你只想从两个列表中生成字典,那么使用 zip功能:

>>> keys, values = ['a', 'b'], [1, 2]
>>> list(zip(keys, values))
[('a', 1), ('b', 2)]

>>> dict(zip(keys, values))
{'a': 1, 'b': 2}

>>> [{k: v} for k, v in zip(keys, values)]
[{'a': 1}, {'b': 2}]

>>> ' '.join('{}:{}'.format(k, v) for k, v in zip(keys, values))
'a:1 b:2'

>>> '[{}]'.format(', '.join("'{}': '{}'".format(k, v) for k, v in zip(keys, values)))
"['a': '1', 'b': '2']"

关于python - 如何创建 key 列表 :value pairs in a for loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873202/

相关文章:

python - OpenCV 和 python 校准相机

python - 如何在django中执行内部连接

python yaml仅打印键值

java - 将 Hashmap 用于键的多个值,为什么?

list - 如何在Prolog中将元素添加到列表中?

python - 如何从已分割的 .txt 文件中获取多行并将它们保存到不同的变量中

c# - 在 C# 中连接两个具有不同数据类型的字典

python - 从具有 True 的列列表的字典中创建一个 pandas 数据框

javascript - 带有 href 和 javascript 的 jQuery append 元素不起作用

jquery - 如何使用 Jquery 动态创建带有 append 文本的 ul li