kbr*_*r85 2 python tuples list python-3.x
假设我有一个类似元组的列表:
listTuples = [(0, 3), (5, 10), (2, 4)]
Run Code Online (Sandbox Code Playgroud)
我想获取元组元素之间差异最大的元组索引
3 - 0 = 3
10 - 5 = 5
4 - 2 = 2
Run Code Online (Sandbox Code Playgroud)
所以我想要1作为回报。
目前,我正在执行以下操作,但是也许有更好的方法(更快,更少的代码行)来执行此操作。
listTuples = [(0, 3), (5, 10), (2, 4)]
k = 0
e = 0
for j, i in enumerate(listTuples):
diff = i[1] - i[0]
if k < diff:
k = diff
e = j
else:
pass
print(e)
Run Code Online (Sandbox Code Playgroud)
您可以index将list对象的方法与max功能一起使用。即
>>> listTuples = [(0, 3), (5, 10), (2, 4)]
>>> listTuples.index(max(listTuples, key=lambda x: x[1] - x[0]))
1
Run Code Online (Sandbox Code Playgroud)
这里max(listTuples, key=lambda x: x[1] - x[0])将返回一个具有最大差异的元组,index方法将从原始列表中找到该元组的索引。
即 listTuples.index((5, 10))
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |