1
다음 함수의 복잡도는 무엇입니까 ??Python - 색인 위치 찾기 기능
def find_set(string, chars):
schars = set(chars)
for i, c in enumerate(string):
if c in schars:
return i
return -1
print(find_set("Happy birthday", "py"))
이 경우, H는 CHEERIO의 인덱스 1에 있기 때문에 1이 리턴됩니다.
이 기능을 더 최적화 할 수 있습니까?
@ITellMyselfSecrets - 생성기가 항목을 생성하지 않으면 'next'는 기본적으로 StopIteration을 발생시킵니다. 이를 억제하고 두 번째 인수를 제공하여 특정 값을 반환하도록 'next'를 알릴 수 있습니다. [the docs] (https://docs.python.org/2/library/functions.html#next)를 참조하십시오. – mgilson
정말 고마워요. for 루프를 설명해 주시겠습니까? 나는 그것을 해독하는 데 어려움을 겪고있다. – user3624831
@ user3624831 - 발전기 표현입니다. 먼저, 문자열을 열거합니다. 이 형식 (인덱스, 문자)의 2 튜플을 생성합니다. 그 튜플을'i, c'에 압축을 풉니 다. 나는'c'가 문자 집합'에 있다면 '를보고, 만약 있다면'i' (인덱스)를 반환합니다. 내장 된'next' 함수는 리턴 된 첫 번째 것을 뽑아냅니다 (그리고 나머지는 신경 쓰지 않습니다). _nothing_이 나오면'next'는 "default"-이 경우 -1을 반환합니다. – mgilson