Python循环向列表追加元素错误:CH_list重复生成相同节点如何解决
问题原因
CH_list的初始化放在了while循环内部,每轮循环都会清空上一轮保存的节点历史记录- 冗余的for循环会重复添加当前轮次的最大节点count次,而不是只追加1次本轮的最大节点
修复后代码
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 移到循环外初始化,全程只初始化1次保存所有轮次的结果 CH_list = [] 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]) # 删掉原来的for循环,每轮只追加1次当前最大节点 CH_list.append(Node_list[index]) print(CH_list) if count >= 10 : break count += 1
修改说明
- 将
CH_list = []移动到while循环外部,只会在程序启动时初始化一次,不会每轮清空历史数据 - 去掉了重复添加节点的for循环,每轮仅调用1次
append()方法将本轮的最大节点追加到列表末尾,即可实现累计保存每轮结果的需求
内容的提问来源于stack exchange,提问作者duckchun
相关产品推荐
相关产品推荐

