i
은 문자열 값이 아닌 인덱스입니다. 당신은 enumerate
기능을 사용할 수 있습니다
for index, i in enumerate(words):
result += words[index]
또는 당신은 단지 단어 자체를 사용할 수 있습니다
for i in words:
result += i
성능 :
In [14]: timeit.timeit('string_cat', '''def string_cat():
...: rg = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
...: 't', 'u', 'v', 'w', 'x', 'y', 'z']
...: st = ''
...: for x in rg: st += x
...: ''', number=1000000)
Out[14]: 0.02700495719909668
In [15]: timeit.timeit('string_cat', '''def string_cat():
...: rg = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
...: 't', 'u', 'v', 'w', 'x', 'y', 'z']
...: st = ''.join(rg)
...: ''', number=1000000)
Out[15]: 0.026237964630126953
루프에'print (i)'를 추가하면'i'가 생각한 것과 다르다는 것을 알 수 있습니다. 명확한 설명을 해주신 덕분에 – DyZ
@ tarashypka에게 감사드립니다. rangefunction() 함수를 사용하지 않고 대답을 얻으려면 대체 코드를 제안하십시오. –