我的列表如下:
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)])
但是我想这很复杂。应该会容易得多!
答案 0 :(得分:5)
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
答案 1 :(得分:2)
当简单的字符串搜索就足够了时,您无需使用字典来使内容过于复杂。
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)
如果您不想反转列表,只需按相反的顺序创建