如何在 for 循环中创建 key:value 对列表?
How to create a list of key:value pairs in a for loop?
我有一个 for 循环输出 15 个值的列表:
for line in data:
line # type(line) is `<class 'list'>`
# do things with line
此 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:value1key2:value2key3: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']"
我有一个 for 循环输出 15 个值的列表:
for line in data:
line # type(line) is `<class 'list'>`
# do things with line
此 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:value1key2:value2key3: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']"