在保持原始不变的情况下操作变量的一部分
Manipulate a part of variable while keeping the original intact
在保持原始变量完好无损的同时操作/使用/删除变量的一部分的最干净的方法是什么。
假设我想要以下列表中对应于最高数值的值
例如:
max([1, 2, '3a', '10b'])
应该被评价为
max([1, 2, 3, 10])
并且应该返回值 '10b'
max
函数接受一个 key
参数,用于计算将用于比较的值。例如:
max([1, 2, '3a', '10b'], key=lambda x: x if isinstance(x, int) else int(x[:-1]))
在lambda
那里填写你自己的转换函数。
使用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
在保持原始变量完好无损的同时操作/使用/删除变量的一部分的最干净的方法是什么。
假设我想要以下列表中对应于最高数值的值
例如:
max([1, 2, '3a', '10b'])
应该被评价为
max([1, 2, 3, 10])
并且应该返回值 '10b'
max
函数接受一个 key
参数,用于计算将用于比较的值。例如:
max([1, 2, '3a', '10b'], key=lambda x: x if isinstance(x, int) else int(x[:-1]))
在lambda
那里填写你自己的转换函数。
使用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