[PYTHON] 파이썬에서리스트에서 가장 짧은 문자열 찾기
PYTHON파이썬에서리스트에서 가장 짧은 문자열 찾기
이것은 꽤 간단한 문제처럼 보입니다. 그러나 나는 이해할 수있는 짧고 달콤한 방법을 찾고 있습니다 (이것은 코드 골프가 아닙니다).
문자열 목록이 주어지면 가장 짧은 문자열을 찾는 가장 쉬운 방법은 무엇입니까?
나에게 가장 명백한 방법은 대체로 다음과 같습니다.
l = [...some strings...]
lens = map(l, len)
minlen, minind = min(lens)
shortest = l[minind]
하지만이 문제에 대한 코드가 많은 것 같습니다 (적어도 파이썬에서는).
해결법
-
==============================
1.min 함수에는 각 항목의 "정렬 값"을 결정하는 함수를 지정할 수있는 선택적 매개 변수 키가 있습니다. 우리는 이것을 len 함수로 설정하여 가장 짧은 값을 얻는 것만으로 충분합니다.
min 함수에는 각 항목의 "정렬 값"을 결정하는 함수를 지정할 수있는 선택적 매개 변수 키가 있습니다. 우리는 이것을 len 함수로 설정하여 가장 짧은 값을 얻는 것만으로 충분합니다.
strings = ["some", "example", "words", "that", "i", "am", "fond", "of"] print min(strings, key=len) # prints "i"
-
==============================
2.선형 시간 소요 :
선형 시간 소요 :
reduce(lambda x, y: x if len(x) < len(y) else y, l)
-
==============================
3.나는 정렬 된 (l, key = len) [0]
나는 정렬 된 (l, key = len) [0]
-
==============================
4.잠재적 인 대답 :
잠재적 인 대답 :
l = [...some strings...] l.sort(key=len) shortest = l[0]
그러나 이것은 불필요한 전체 목록을 정렬한다는 점에서 매우 비효율적 일 수 있습니다. 우리는 정말로 최소한을 필요로합니다.
-
==============================
5.
arr=('bibhu','prasanna','behera','jhgffgfgfgfg') str1='' #print (len(str)) for ele in arr: print (ele,ele[::-1]) if len(ele)>len(str1): str1=ele elif len(ele)<len(str2): str2=ele print ("the longest element is :",str1) str2=arr[0] for ele in arr: if len(ele)<len(str2): str2=ele print ("the shortest element is :",str2)
from https://stackoverflow.com/questions/7228924/how-to-find-the-shortest-string-in-a-list-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 날짜 문자열에서 적절한 strftime 형식을 결정하는 방법? (0) | 2018.11.21 |
---|---|
[PYTHON] 파이썬에서 커서 위치 찾기 (0) | 2018.11.21 |
[PYTHON] 파이썬에서 '\ x'가 왜 유효하지 않습니까? (0) | 2018.11.21 |
[PYTHON] 2 차원 질의 배열로 일치하는 행 찾기 (0) | 2018.11.21 |
[PYTHON] urllib.open을 사용할 때의 파이썬 오류 (0) | 2018.11.21 |