从列表中查找包含str和int python的最大int值

abh*_*610 -2 python string combinations list max

希望max从组合列表中找到如下:

['filename1', 1696, 'filename2', 5809,....]
Run Code Online (Sandbox Code Playgroud)

我试过以下:

max(['filename1', 1696, 'filename2', 5809,....])
Run Code Online (Sandbox Code Playgroud)

那回报我TypeError: '>' not supported between instances of 'int' and 'str'.任何建议都会有所帮助.我想要的是max从上面列表中找到整数值.

Rak*_*esh 5

使用list comprehensionisinstance提取int,然后使用max.

例如:

f = ['filename1', 1696, 'filename2', 5809]
print(max([i for i in f if isinstance(i, int)]))
#or generator
print(max((i for i in f if isinstance(i, int))))    #Better Option
Run Code Online (Sandbox Code Playgroud)

输出:

5809
5809
Run Code Online (Sandbox Code Playgroud)

  • 在生成器示例中,内部`()`是隐式的而不是必需的(只要生成器是唯一的参数). (2认同)