【发布时间】:2018-04-02 20:20:40
【问题描述】:
我有以下文字:
我想实现以下目标。
用关键字 word1, ...(左边的那些)创建一个字典 然后我想将 word1 与 word7 相关联,在这种情况下,与 word 11 相关联(并添加重复)所以
word1 = [word7, word11, word11]
我想对左边的每个单词执行此操作,前提是它与之前已经计算的不同。
我尝试了以下方法,但它不起作用:
from collections import defaultdict
inputfile = open("file.txt","r")
keys = []
key = ''
my_dict = defaultdict(list)
for line in inputfile:
l=line.split()
a= l[4].split("-")
b_temp = l[7].rstrip("\'")
b = b_temp.split("-")
for elem in range(len(a)):
if a not in keys:
keys.append(a)
key = a[elem]
my_dict[key].append(b[elem])
continue
for var in range(len(a)):
if a[var] == a[elem]:
my_dict[key].append(b[var])
我知道左边的字数等于右边的字数。
例如,我得到类似 defaultdict(, {'aaaa': ["'word7", 'word10']})
但我愿意
在这种情况下
word1 = [word7, word11, word11]
word2 = [word8, word7]
word3 = [word9]
word4= [word10]
【问题讨论】:
-
你能提供更多关于什么不起作用的上下文吗?您解决了哪些问题,或者遇到了哪些错误?
-
我已经尝试过了,但它没有给出想要的结果。我认为问题出在 for 循环上。从某种意义上说,我必须循环到数据文件的所有行。但我没有这样做
-
你得到了什么结果? '它不起作用',没有给我任何关于你的问题的信息。如果我现在在我的计算机上运行您的确切代码并且它可以工作,那会给我们留下什么?如果你说它导致某个字符串,'resulting string'。可能很容易看出您有转义字符问题或其他问题。
-
索引不正确:用 4 代替 6,用 7 代替 8
-
谢谢。我已经纠正了。但它仍然会产生不希望的结果。输出为 defaultdict(
, {'aaaa': ["'word7", 'word10']})
标签: python dictionary