繁体   English   中英

临时列表不会在每次迭代时附加

[英]Temporary list won't append at each iteration

我是初学者,我在这里有这段代码:

alleles=['DPY','DPX']
n_dict={'DPY':[['AA561_P4',5781],['AA562_P2',5712]],'DPX':[['AA561_P3',5324],['AA565_P2',5742]]}
n_list = []
for item in alleles:
    f_list=[item]
    for sub in n_dict[item]:
        t=sub[0].split('_')
        t1=t[1]+','+t[0]
        f_list.append(t1)
    n_list.append(f_list)
print(f_list)

它应该遍历等位基因中的每个项目,并使用该项目作为密钥来恢复列表列表。 随后对于列表列表中的每个项目(子),它必须获取零位置的元素并重新排列它并将这个重新排列的字符串附加到列表(f_list)。 最后,一旦它浏览了一个等位基因的完整列表,它必须将字符串列表 (f_list) 附加到 n_list。

我没有给出一个列表列表,每个列表都包含一个重新排列的字符串列表,我只得到最后一个字符串列表。 我怀疑这可能是一个可以修复 .copy 模块的问题,但我仍然没有找到解决方案。

我认为问题在于您在循环内定义了 f_list 变量。 因此,第一次迭代的结果会被下一次迭代的结果覆盖,丢弃其结果。 将 f_list 的初始定义向上移动一行,将其初始化为空列表,并在循环内向其附加项目应该可以解决您的问题。

修改以下两行代码:

    n_list.append(f_list)
print(n_list)

进入

    n_list.append(list(f_list))
print(n_list)

我想这就是你要找的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM