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

时间:2017-01-29 13:22:20

标签: python list python-3.x

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

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模块的问题,但我仍然没有找到解决方案。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

改变以下两行代码:

    n_list.append(f_list)
print(n_list)

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

我认为你正在寻找。