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

2024-05-16 06:44:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

它应该遍历等位基因中的每个项目,并使用该项目作为键来恢复列表列表。随后,对于列表列表中的每个项(sub),它必须将元素置于零位置并重新排列,然后将这个重新排列的字符串附加到一个列表(f\u list)中。最后,一旦它完成了一个等位基因的完整列表,它就必须将字符串列表(f\u list)附加到n\u list。你知道吗

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


Tags: 字符串in列表foritemdictlist等位基因
2条回答

我认为问题在于你在循环中定义了你的f\u list变量。因此,第一次迭代的结果会被下一次迭代的结果覆盖,从而丢弃其结果。将f_列表的初始定义上移一行,将其初始化为空列表,并在循环中向其追加项,应该可以解决您的问题。你知道吗

包含以下两行代码:

    n_list.append(f_list)
print(n_list)

进入

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

我想这就是你要找的。你知道吗

相关问题 更多 >