Python 如何比较具有相同元素数的多个列表
我有一个测量系统。它每秒生成4个输出值。4个值的列表(例如[30,45,70,10])。当我按下计算按钮时,它应该比较这些值。假设我在3秒钟后按下了计算按钮。所以它将比较3个列表。比较意味着比较相同位置的元素。例如[10,5,23,24]和[22,35,45,12]是两个列表。第一个列表(此处为10)中的零位元素应与第二个列表(此处为22)中的零位元素进行比较,并打印这两个列表中的高值。与其他位置元素相同。如何做到这一点。如何保存所有列表并进行比较Python 如何比较具有相同元素数的多个列表,python,list,max,Python,List,Max,我有一个测量系统。它每秒生成4个输出值。4个值的列表(例如[30,45,70,10])。当我按下计算按钮时,它应该比较这些值。假设我在3秒钟后按下了计算按钮。所以它将比较3个列表。比较意味着比较相同位置的元素。例如[10,5,23,24]和[22,35,45,12]是两个列表。第一个列表(此处为10)中的零位元素应与第二个列表(此处为22)中的零位元素进行比较,并打印这两个列表中的高值。与其他位置元素相同。如何做到这一点。如何保存所有列表并进行比较 # for demonstration, I
# for demonstration, I am using random number generator
import tkinter as tk
import random
measure_status = True
def readValues():
if measure_status :
outputs = [0]*0
outputs.append(rand.randrange(0,100,1))
outputs.append(rand.randrange(0,100,1))
outputs.append(rand.randrange(0,100,1))
outputs.append(rand.randrange(0,100,1))
# do i need another variable to save all the list to compare
win.after(1000, readValues)
def calc_max():
global measure_status
measure_status = False #stopping meaasurement.
# rest of the code here? how to compare lists?
win = Tk()
calc_btn = tk.Button(win, text = "Calculate", command=calc_max )
calc_btn.grid(row=4, column=4)
win.after(1000, readValues)
win.mainloop()
您可以使用
zip
和max
:
def get_max_list(list_of_lists):
"""
Returns a list of max values for the zips of list_of_lists.
Assumes each list is the same length.
"""
return [max(x) for x in zip(*list_of_lists)]
# The above is equivalent to:
# result = []
# for x in zip(l1, l2, l3):
# result.append(max(x))
# print(*result) # Just prints each entry in result.
l1 = [10, 5, 23, 24]
l2 = [22, 35, 45, 12]
l3 = [0, 22, 123, 33]
lists = [l1, l2, l3] # our list of lists example input
print(*get_max_list(lists))
输出:
22 35 123 33
请尝试在帮助中心继续阅读。特别是关于创建一个。你应该尽量减少手头的具体问题。例如,您的问题中没有与
tkinter
相关的内容,也没有与整个代码相关的内容……如何保存列表?正如我在问题中提到的,我每秒都有新的列表。似乎我应该添加新列表,它可能会以列表的形式结束??我很困惑。你想保存这个吗?或者保存不同的输出?我提供的代码的输入应该是一个列表列表,代码的输出是一个单数列表。在我的例子中,一个包含4个元素的新列表将每秒出现一次。例如,第一秒[10,20,30,40]和下一秒[33,17,2,28]以及下一秒[48,27,16,28]等等,直到我按下计算按钮。现在我要比较三个列表。(在我按下计算按钮之前可能会有很多次)。明白了。谢谢;)