簡體   English   中英

使用核心 python 將列表中的列相乘,無需任何導入庫

[英]multiply columns in the list using core python, without any import libraries

如果我有這樣的數據

[['6', '0.24','B','C'], ['6', '0.22','A','C'], ['4', '0.20', 'A','X']]

現在我想找出(6/.24, 6/0.22, 4/0.20)的最大值,最后,它曾經有最大值,在索引 2 和 3 處顯示 col 值。我期望的 Output 應該看起來像這樣: 27.27273, A, C (A, C 是我們找到最大值的列表中的對應值) 再次感謝。

按前 2 個元素之間的差異對列表進行排序

lst = [['6', '0.24','B','C'], ['6', '0.22','A','C'], ['4', '0.20', 'A','X']]
sorted_lst = sorted(lst, key=lambda x: float(x[0])/float(x[1]), reverse=True)
x = sorted_lst[0]
result = [float(x[0])/float(x[1]), x[2], x[3]]
print(result)

Output:

[27.272727272727273, 'A', 'C']

建立一個(6/.24, 6/0.22, 4/0.20)值的列表,然后取最大值。

a = [['6', '0.24','B','C'], ['6', '0.22','A','C'], ['4', '0.20', 'A','X']]

b = max([float(x[0])/float(x[1]) for x in a])
print(b)
def get_maxrow(data):
  x = [[float(i[0])/float(i[1]), *i[2:]] for i in data]
  return max(x)

x = [['6', '0.24','B','C'], ['6', '0.22','A','C'], ['4', '0.20', 'A','X']]

y = get_maxrow(x)
print(y) # [27.272727272727273, 'A', 'C']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM