반응형
목록에서 가장 긴 문자열을 선택하는 Python의 가장 효율적인 방법?
변수 길이의 리스트가 있는데, 현재 평가되고 있는 리스트 항목이 리스트에 포함되어 있는 가장 긴 문자열인지 테스트 방법을 찾고 있습니다.그리고 Python 2.6.1을 사용하고 있습니다.
예를 들어 다음과 같습니다.
mylist = ['abc','abcdef','abcd']
for each in mylist:
if condition1:
do_something()
elif ___________________: #else if each is the longest string contained in mylist:
do_something_else()
분명 제가 간과하고 있는 짧고 우아한 단순한 목록 이해가 있을까요?
Python 문서 자체에서 다음을 사용할 수 있습니다.
>>> mylist = ['123','123456','1234']
>>> print max(mylist, key=len)
123456
def longestWord(some_list):
count = 0 #You set the count to 0
for i in some_list: # Go through the whole list
if len(i) > count: #Checking for the longest word(string)
count = len(i)
word = i
return ("the longest string is " + word)
또는 훨씬 더 쉽게:
max(some_list , key = len)
긴 문자열이 두 개 이상 있을 경우 어떻게 됩니까('12' 및 '01'로 생각됨).
가장 긴 요소를 얻기 위해 시도합니다.
max_length,longest_element = max([(len(x),x) for x in ('a','b','aa')])
그리고 보통 포어치.
for st in mylist:
if len(st)==max_length:...
목록에서 가장 작은 항목 또는 가장 큰 항목을 가져오려면 내장된 최소 및 최대 함수를 사용합니다.
lo = min(L)
hi = max(L)
정렬과 마찬가지로 목록 항목을 비교하기 전에 매핑하는 데 사용되는 "key" 인수를 전달할 수 있습니다.
lo = min(L, key=int)
hi = max(L, key=int)
http://effbot.org/zone/python-list.htm
문자열에 대해 올바르게 매핑하여 비교 대상으로 사용하면 max 함수를 사용할 수 있을 것 같습니다.물론 목록의 각 요소에 대해 최대값을 찾는 것이 아니라 한 번만 찾는 것이 좋습니다.
len(each) == max(len(x) for x in myList)
아니면 그냥each == max(myList, key=len)
def LongestEntry(lstName):
totalEntries = len(lstName)
currentEntry = 0
longestLength = 0
while currentEntry < totalEntries:
thisEntry = len(str(lstName[currentEntry]))
if int(thisEntry) > int(longestLength):
longestLength = thisEntry
longestEntry = currentEntry
currentEntry += 1
return longestLength
언급URL : https://stackoverflow.com/questions/873327/pythons-most-efficient-way-to-choose-longest-string-in-list
반응형
'programing' 카테고리의 다른 글
Jupyter 노트북의 tqdm은 새로운 진행 표시줄을 반복적으로 인쇄합니다. (0) | 2023.01.21 |
---|---|
목록을 2개씩 반복하려면 어떻게 해야 하나요? (0) | 2023.01.21 |
mysql LOAD DATA/mysqlimport 성능 향상? (0) | 2023.01.21 |
팬더 데이터 프레임 목록 연결 (0) | 2023.01.21 |
MySQL 문자열에서 영숫자가 아닌 모든 문자를 제거하려면 어떻게 해야 합니까? (0) | 2023.01.21 |