你好我想用Python做一本字典,
需要做的是python读取一个文本文件,里面的值如下:
good buono
我所做的是,用文件功能打开文件并替换标签并添加反转的逗号以创建列表,使其看起来像是
["('good', 'buono')", "('afternoon', 'pomeriggo')",... and so on
但问题是每个单词翻译的类型不是元组,当我试图看第一个元素(数字0)时它是字符串它显示我的值为
"('good', 'buono')"
这是一个字符串。我需要使用dict公式,以便我可以将类型转换为字典,但我不能,因为它是字符串列表(必须是元组列表)
那么如何将该字符串列表转换为元组列表呢?
答案 0 :(得分:4)
假设每对单词都在文件的单独一行,您可以这样做:
mydict = {line.split()[0]: line.split()[1] for line in myfile}
这会转换像
这样的文件good buono
afternoon pomeriggo
thanks grazie
到
{"good": "buono", "afternoon": "pomeriggo", "thanks": "grazie"}
一路上不需要元组。
.split()
将输入字符串拆分为空格,删除任何前导/尾随空格:
>>> " good\tbuono \n".split()
['good', 'buono']
答案 1 :(得分:4)
with open('input.txt') as f:
result = map(str.split, f)
# -> [['good', 'buono'], ['afternoon', 'pomeriggo']]
d = dict(result)
# -> {'good': 'buono', 'afternoon': 'pomeriggo'}
答案 2 :(得分:1)
ast
将像@onemach建议的那样工作,但您可能希望以元组的形式读取字符串。
段:
li = []
with open("file.txt", 'r') as f:
li.append(tuple(f.readline().split('\t')))
这将分割关于选项卡的字符串,并将其放入元组对象中,然后将其附加到列表中。