我在下面有一个对象实例,它有pid和pos列表,元素的范围是3-10,现在我将使用三个元素。你知道吗
lst = []
class Ppl:
def __init__(self, pid):
# local variables
self.pid = pid
self.pos = [3*pid+6, 1, 10+pid-4*pid]
for index in range(3):
lst.append(Ppl(index))
for index in range(len(lst)):
print(lst[index].pos)
结果是:
[6, 1, 10]
[9, 1, 7]
[12, 1, 4]
我需要一种方法,通过每个索引获得这三个的最小值,并进行列表理解,以便预期输出应该是:
[6, 1, 4]
到目前为止我试过的:
我尝试过这种方法,但实际上这不是一种好方法,因为只有当list对象和'pos'list元素只有三个时,这种方法才会起作用。你知道吗
lst2 = []
for index in range(len(lst)):
rst = min(lst[0].pos[index],lst[1].pos[index],lst[2].pos[index])
lst2.append(rst)
print(lst2)
>> [6, 1, 4]
另一种只在列表不是对象实例时有效的方法。。。但这不是我想要的方式。你知道吗
lst3 = [[6, 1, 10], [9, 1, 7], [12, 1, 4]]
lst3 = list(map(min, *lst3))
print(lst3)
>> [6, 1, 4]
那怎么做呢?你知道吗
你可以这样做:
下面是一种处理现有列表的方法,如您所示,其中每个列表可以是任意长度的,只要所有内部列表的长度相同:
结果:
您可以只在类的第一个实例的数组中找到元素的数量(每个实例的位置数组中必须有相同数量的元素)
相关问题 更多 >
编程相关推荐