[英]Python joining tuples from a while loop into a list
我正在遍历表单的大量元组
num_list = [('A15', 2, 'BC', 721.16), ('A21', 3, 'AB', 631.31), ('A42', 4, 'EE', 245.43)]
我正在尝试为第一个元素的每个不同值在第二个元素的5个滚动值周期内找到每个元组的最大第四个元素,所有不同的第一个元素值都存储在一个名为account_2的集合中,并将其输出到形成
ID Max
A21 400
A15 489
我的代码如下:
first_value = 1
fifth_value = 5
maximum = []
while first_value <= 24 and fifth_value <= 28:
for num_list[0][0] in account_2:
result = max([i for i in num_list if i[1] <= fifth_value and i[1] >= first_value], key = lambda x:x[3])
maximum.extend(result)
first_value += 1
fifth_value += 1
我想我需要用num_list[0][0]
的第1个0
代替要循环的变量,以便它循环遍历列表中的每个元组,但是在我测试的第一个元组中,即在当前情况下收到错误TypeError: 'tuple' object does not support item assignment
。
任何帮助将不胜感激。 提前致谢
错误是由行引起的
for num_list[0][0] in account_2:
它尝试将值从account_2
分配给numlist[0][0]
而numlist[0]
是一个元组,这是一个不可变的对象。
最小修复为:
while first_value <= 24 and fifth_value <= 28:
for acc in account_2:
try:
result = max([i for i in num_list if i[1] <= fifth_value and i[1] >= first_value and i[0] == acc ], key = lambda x:x[3])
except ValueError:
result = ()
maximum.extend(result)
first_value += 1
fifth_value += 1
try: ... except...
是必需的,因为在传递空序列时max
会引发ValueError。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.