在python列表中找到最大的字符串?

2024-06-28 22:10:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我的清单如下:

input1 = ['XS','S', 'M', 'L', 'XL', 'XXL', 'XXXL']

input2 = ['XS', 'S', 'M', 'L', 'XL', 'XS', 'S']

input3 = ['XS', 'S', 'M', 'L', 'S]

input4 = ['XS', 'S', 'M', 'L', 'XS', 'L']

等等

如您所见,列表元素每次都会更改。我想知道每次如何找到最大的元素

标准列表如下:

['XS','S', 'M', 'L', 'XL', 'XXL', 'XXXL']

这就是我尝试过的:

lst1 = {k:v for k, v in enumerate(['XS', 'S', 'M', 'L','XL','XXL', 'XXXL'])}

lst2 = ['XS', 'S', 'M', 'L', 'XL', 'XS', 'S']

tem = []

for i in lst2:
  for k,v in list(lst1.items()):
    if i == v:
      tem.append(k)


print(lst1[max(tem)])

但我想这很复杂。应该容易多了


Tags: in元素列表forxsxltemxxl
2条回答

只需反转字典并使用get函数作为max的键:

lst1 = {v: k for k, v in enumerate(['XS', 'S', 'M', 'L','XL','XXL', 'XXXL']) }
lst2 = ['XS', 'S', 'M', 'L', 'XL', 'XS', 'S']

result = max(lst2, key=lst1.get)
print(result)

输出

XL

当简单的字符串搜索就足够的时候,你不需要过度复杂的字典

lst1 = ['XS', 'S', 'M', 'L','XL','XXL', 'XXXL']
lst2 = ['XS', 'S', 'M', 'L', 'XL', 'XS', 'S']

result = next(x for x in lst1[::-1] if x in lst2)

如果不想反转列表,只需按相反的顺序创建

相关问题 更多 >