잡동사니

반응형

질문


다음과 같은 목록이 있습니다.

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)])

그러나 이것은 매우 복잡합니다. 훨씬 쉬워야합니다!


답변1


사전을 반전 하고 가져 오기 최대 :

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

답변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)

목록을 바꾸지 않으려면 반대 순서로만 만드십시오.


 

 

 

 

출처 : https://stackoverflow.com/questions/59201593/find-the-largest-size-string-in-a-list-python

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band