我有两个文本文件,格式如下:
foo,bar,etc
另一个是这样的:
1,2,3
我想将这两个文本文件放入一个 Python 字典中,而不必手动完成每个文件。我希望输出将字符串连接到数字。有没有办法做到这一点?
我有两个文本文件,格式如下:
foo,bar,etc
另一个是这样的:
1,2,3
我想将这两个文本文件放入一个 Python 字典中,而不必手动完成每个文件。我希望输出将字符串连接到数字。有没有办法做到这一点?
keys = first_string.split(',')
values = second_string.split(',')
output_dict = dict(zip(keys, values))
>>> first_string = "foo,bar,etc"
>>> second_string = "1,2,3"
>>> keys = first_string.split(',')
>>> values = second_string.split(',')
>>> output_dict = dict(zip(keys, values))
>>> output_dict
{'etc': '3', 'foo': '1', 'bar': '2'}
如果您希望这些值是实际数字,您可以转换它们:
values = [int(v) for v in second_string.split(',')]
假设您知道如何从文件中读取数据并将行拆分为列表,并int
根据需要将它们转换为 s。
s1 = ['foo', 'bar', 'etc']
n1 = [1, 2, 3]
dict(zip(s1, n1))
产量:
{'bar': 2, 'etc': 3, 'foo': 1}
备注:
zip()结合您的列表:
zip(s1, n1)
[('foo', 1), ('bar', 2), ('etc', 3)]
如果您不习惯从行数据创建列表,对于使用split()的给定行,您可以这样做
line = line.split(',') #'foo,bar,etc' => ['foo','bar','etc'] / '1,2,3' => ['1','2','3']
如果你想将你的数字数据转换为int
s 使用列表理解:
n1 = [int(n) for n in line] # ['1','2','3'] => [1, 2, 3]
您可以直接从文本文件中读取值和键,示例代码如下:
import fileinput
keys = []
values = []
for line in fileinput.input(['v.txt']):
values = values + [int(v) for v in line.split(',')]
for line in fileinput.input(['k.txt']):
keys = keys + [k.replace("\n","") for k in line.split(',')]
the_dict = dict(zip(keys, values))
我假设您需要将值作为整数,并且文本文件可能包含多行但它们必须包含相同数量的元素。
我刚刚开始,但将两者一起运行在一行中可能更简单:
string_dict = {'etc': '3', 'foo': '1', 'bar': '2'}