본문 바로가기
파이썬

파이썬에서 index () 이외의 메서드를 사용하여 문자열의 모든 두 번째 문자를 대문자로 만드나요?

by º기록 2020. 9. 14.
반응형
def myfunc(mylist = str):
mystring = ''
for x in mylist:
    if mylist.index(x) % 2 == 0:
        mystring = mystring + x.lower()
    else:
        mystring = mystring + x.upper()
return mystring
print(myfunc('committee')) #Doesn't work
print(myfunc('ilovehoney')) #Does work

내 코드의 실수는 문자열에서 반복되는 문자를 인식하지 못하기 때문에 index ()라고 생각합니다. 내가 사용할 수있는 다른 방법을 아는 사람이 있습니까? 첫 번째 예제의 출력은 'cOmmiTTEE'이지만 'cOmMiTtEe'여야하며 두 번째 예제의 출력은 내가 의도 한 'iLoVeHoNeY'입니다. 두 번째 예에서 내 기능이 갑자기 작동하는 이유는 확실하지 않습니다. 도와 주셔서 감사합니다.

 

해결 방법

 

enumerate 를 사용하여 이터 러블에서 색인과 값을 가져올 수 있습니다.

for idx, x in enumerate(mylist):
    if idx % 2 == 0:
        mystring = mystring + x.lower()
    else:
        mystring = mystring + x.upper()

 

참조 페이지 https://stackoverflow.com/questions/63756291

 

 

반응형

댓글