在文本内循环

用户9570622

我有以下文字:

我想实现以下目标。

创建一个带有关键字 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 循环(for elem in ...)。解决的办法是简单:你不需要嵌套for循环,只需使用zip函数中的每个元素进行配对a(我称之为keys)与相应的元素b(我称之为values):

from collections import defaultdict

inputfile = open("file.txt","r")
my_dict = defaultdict(list)

for line in inputfile:
    line = line.split()
    keys = line[4].split("-")
    values = [v.strip("'") for v in line[7].split("-")]

    for k, v in zip(keys, values):
        my_dict[k].append(v)

for k, v in sorted(my_dict.items()):
    print('{} = {}'.format(k, v))

输出:

word1 = ['word7', 'word11', 'word11']  
word2 = ['word8', 'word7']             
word3 = ['word9']                      
word4 = ['word10']                     

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Lua中的For循环内重复文本

来自分类Dev

在Lua中的For循环内重复文本

来自分类Dev

写入 for 循环内的文本文件

来自分类Dev

循环内 post(construct) 中的变量 + 文本

来自分类Dev

如何使用类获取跨度内的文本。(for循环内)

来自分类Dev

Python / Pygame使for循环内的文本不断移动

来自分类Dev

如何获取while循环内的文本框值?

来自分类Dev

在函数的 for 循环内动态更改元素的内部文本

来自分类Dev

使用for循环将范围内的文本粘贴为OLEObject

来自分类Dev

如何在foreach循环内的文本框中获取下拉选择的选项文本

来自分类Dev

在循环内递增for循环

来自分类Dev

循环并发内循环

来自分类Dev

循环内的JS循环

来自分类Dev

WordPress的循环内循环

来自分类Dev

循环内循环activerecord

来自分类Dev

循环内循环

来自分类Dev

for 循环内的 for 循环

来自分类Dev

C#if循环内的for循环内的if循环

来自分类Dev

发布设置将文本返回到重复循环内的变量-OS X 10.9.x

来自分类Dev

如何在循环内以编程方式命名1000个文本框

来自分类Dev

在动态面板内的动态文本框内循环(在占位符内部)

来自分类Dev

发布设置将文本返回到重复循环内的变量-OS X 10.9.x

来自分类Dev

回显带有php内图像的文本以进行循环

来自分类Dev

在for循环内时,程序不会显示第一行文本

来自分类Dev

在 C# windows 应用程序中显示循环内的文本

来自分类Dev

For循环以填充文本块

来自分类Dev

for循环,用于更改文本

来自分类Dev

在重叠的文本之间循环

来自分类Dev

在循环内设置文本