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