在保持原始变量完整的同时操作/使用/删除部分变量的最简洁方法是什么。
让我们说我希望以下列表中的值对应于最高数值
例如:
max([1, 2, '3a', '10b'])
应评估为
max([1, 2, 3, 10])
并且应返回值'10b'
答案 0 :(得分:6)
max
函数接受key
参数,该参数用于计算将用于比较的值。 E.g:
max([1, 2, '3a', '10b'], key=lambda x: x if isinstance(x, int) else int(x[:-1]))
为那里的lambda
填写您自己的转换函数。
答案 1 :(得分: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