2017-08-30 88 views
0

什麼是操縱/使用/刪除變量的一部分,同時保持原始變量不變的乾淨的方式。操縱變量的一部分,同時保持原有的完整

可以說,我想對應的最高數值

因此,例如在下面的列表中選擇值:

max([1, 2, '3a', '10b']) 

max([1, 2, 3, 10]) 

和價值進行評估'10b'應返回

回答

2
使用 re.search()功能

擴展方法:

import re 

max_item = max([1, 2, '3abc', '10bc'], key=lambda n: int(re.search(r'\d+', str(n)).group(0))) 
print(max_item) 

輸出:

10bc 
6

max函數接受一個參數key,該參數用於計算將用於比較的值。例如: -

max([1, 2, '3a', '10b'], key=lambda x: x if isinstance(x, int) else int(x[:-1])) 

填寫爲lambda有自己的轉換功能。

+1

僅假定最後一個字符是字母,還假定不'float's(可能會或可能不正確的假設對於這種特殊情況) –

+2

因此,最後一句;我只能在這裏給出的一點信息...... – deceze

+0

這是完美的,可以使用lambda函數來修復它。 – AK47

相關問題