공백으로 분할 된 문자열 목록이 있습니다. 문자열의 두 번째 분할 값으로 목록을 정렬하고 싶습니다.
람다를 사용하면 작동합니다.
Names = ['Ccc Eee', 'Bbb Aaa', 'Aaa Bbb', 'Zzz Zzz', 'Ddd Ddd']
# Names.sort(key=lambda name: name.split(' ')[1])
# print(Names) # ['Bbb Aaa', 'Aaa Bbb', 'Ddd Ddd', 'Ccc Eee', 'Zzz Zzz']
하지만 람다를 사용하지 않고 정렬하려면 오류가 표시됩니다.
def mysort(name):
for i in range(0, len(name)):
return name[i].split(' ')[1]
Names.sort(key=mysort(Names))
print(mysort(Names))
# output:
# Names.sort(key=mysort(Names))
# TypeError: 'str' object is not callable
내가 도대체 뭘 잘못하고있는 겁니까?
최신 정보:
def mysort(name):
return name.split(' ')[-1]
Names.sort(key=mysort)
print(Names) # ['Bbb Aaa', 'Aaa Bbb', 'Ddd Ddd', 'Ccc Eee', 'Zzz Zzz']
두 가지 문제.
함수를 호출하면 안됩니다.
당신이하는 것처럼
Names.sort(key=lambda name: name.split(' ')[1])
그리고 아닙니다
Names.sort(key=lambda name: name.split(' ')[1](Names))
, 당신은해야
Names.sort(key=mysort)
그리고 아닙니다
Names.sort(key=mysort(Names))
함수에는 루프가 필요하지 않습니다.
def mysort(name):
return name.split(' ')[1]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다