繁体   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