List 在for循环的列表中追加列表

List 在for循环的列表中追加列表,list,for-loop,append,python-3.7,List,For Loop,Append,Python 3.7,各位好,飞越者 我的问题: 对于循环j,循环三次,我每次用append加一个值。这个for循环被放置在另一个for循环i中。在这个for循环中,也循环了三次,我使用append将for循环j中的列表添加到第二个列表中。当我打印第二个列表时,我看到第三个周期中添加的第一个列表的结果的三倍 list_batteries = [ 50, 75, 100] list_chargers = [100, 250, 500] list_results = [] list_temp = [] for

各位好,飞越者

我的问题: 对于循环j,循环三次,我每次用append加一个值。这个for循环被放置在另一个for循环i中。在这个for循环中,也循环了三次,我使用append将for循环j中的列表添加到第二个列表中。当我打印第二个列表时,我看到第三个周期中添加的第一个列表的结果的三倍

list_batteries = [ 50,  75, 100]
list_chargers  = [100, 250, 500]

list_results   = []
list_temp = []

for i in range(len(list_batteries)):
    list_temp.clear()
    for j in range(len(list_chargers)):
        list_temp.append(list_chargers[j] / list_batteries[i])
    list_results.append(list_temp)

print(list_results)
打印列表的结果给了我:

[[1.0, 2.5, 5.0], [1.0, 2.5, 5.0], [1.0, 2.5, 5.0]]
但我想:

[[2.0, 5.0, 10.0], [1.3333333333333333, 3.3333333333333335, 6.666666666666667], [1.0, 2.5, 5.0]]
因此,我可以通过list_results[…]获得一个值

如果有人能向我解释为什么我没有得到预期的结果,以及我应该如何编写代码,我真的很感激


提前感谢。

问题在于这一行,在第一次循环i之后:

列表\u温度清除

该行不仅清除list_temp,还清除list_电池。这就是为什么你总是用两个清晰的列表开始一个新的迭代

我承认我不知道为什么,但将list_temp重新指定为[],而不是调用clear方法非常有效:

list_batteries = [50, 75, 100]
list_chargers = [100, 250, 500]

list_results = []
list_temp = []

for i in range(len(list_batteries)):
    list_temp = [] #MODIFY HERE
    for j in range(len(list_chargers)):
        list_temp.append(list_chargers[j] / list_batteries[i])
    list_results.append(list_temp)

print(list_results)

在尝试将列表附加到列表时,请使用: list_results.appendlist_temp而不是list_results.appendlist_temp

并使列表为空_temp*=0

list_batteries = [ 50,  75, 100]
list_chargers  = [100, 250, 500]

list_results   = []
list_temp = []

for i in range(len(list_batteries)):
    list_temp *=0
    for j in range(len(list_chargers)):
        list_temp.append(list_chargers[j] / list_batteries[i])
    list_results.append(list(list_temp))

print(list_results)

谢谢你的帮助。多亏了Sreekanth BM,我找到了另一个选择。他说使用列表结果。有了这个,我仍然可以使用list_temp.clear,没有问题。当然。随便什么适合你。