如何用循环将元素添加到列表中?


import random
count = 1
attack_count = 0
Node_list = ['a','b','c','d','e']
a, b, c, d, e = 1,1,1,1,1
while True:
value_list = random.sample(range(10, 100), 5) 
a = value_list[0]
b = value_list[1]
c = value_list[2]
d = value_list[3]
e = value_list[4]
print(count, "Round, Values : ", a, b, c, d, e)
Biggest_N = max(a,b,c,d,e)
index = value_list.index(Biggest_N) 
print("Biggest Node:", Node_list[index]) 
CH_list = []
for i in range(count):
CH_list.append(Node_list[index])
print(CH_list)
if count >= 10 :
break
count += 1

首先,谢谢你的帮助我使用Python编写这段代码。在这段代码中,我希望CH_list附加每个最大节点计数的元素。例如,如果count 1中的最大节点是c, CH_list可能会打印[c]如果count 2中的最大节点是b, CH_list可以输出[c, b]…但是它不起作用,在我的代码中,如果count 2中最大节点是b, CH_list print [b, b].

你能告诉我如何解决这个问题吗?
import random
count = 1
CH_list = []
attack_count = 0
Node_list = ['a','b','c','d','e']
a, b, c, d, e = 1,1,1,1,1
while True:
value_list = random.sample(range(10, 100), 5) 
a = value_list[0]
b = value_list[1]
c = value_list[2]
d = value_list[3]
e = value_list[4]
print(count, "Round, Values : ", a, b, c, d, e)
Biggest_N = max(a,b,c,d,e)
index = value_list.index(Biggest_N) 
print("Biggest Node:", Node_list[index]) 

CH_list.append(Node_list[index])
print(CH_list)

if count >= 10 :
break
count += 1

如果你想做的是累积列表中每次迭代的最大节点,你必须在while循环之外声明CH_list。这样就不会在每次迭代时重置列表。

同样,也不需要for循环,因为它所做的只是将相同的节点count次添加到空列表中。

解决方案如下:

import random
count = 1
attack_count = 0
Node_list = ['a','b','c','d','e']
a, b, c, d, e = 1,1,1,1,1
CH_list = [] # Declare list outside loop
while True:
value_list = random.sample(range(10, 100), 5) 
a = value_list[0]
b = value_list[1]
c = value_list[2]
d = value_list[3]
e = value_list[4]
print(count, "Round, Values : ", a, b, c, d, e)
Biggest_N = max(a,b,c,d,e)
index = value_list.index(Biggest_N) 
print("Biggest Node:", Node_list[index]) 
CH_list.append(Node_list[index]) # Append biggest node to the list
print(CH_list)
if count >= 10 :
break
count += 1

最新更新