요약 : 교과서에서 질문하는대로 프로그램을 작성하여 '버블 정렬'에 대한 숙련도와 실력을 시험해 보도록 권했습니다. 이 문제는 "문자열 배열에 20 개의 이름을 입력 할 수있는 프로그램을 작성하라. 배열을 오름차순 (알파벳 순서)로 정렬하고 그 내용을 표시하십시오." 초기 코드가 작동했지만 만족스럽지 못했고 나중에 코드 변경 시도가 실패했습니다. 실행 가능한 솔루션을 찾지 못했습니다. 버블 정렬 알고리즘 | 'str'객체가 항목 할당을 지원하지 않습니다 - Python
문제
: I는 처음에 사용자 입력에 대한 값 20 20 개 각 개별 입력을 허용하기 위해 20 회 반복 처리 루프 (for listInput in range(20):
)의 경우와
friendInput
함수를 썼다. 이 작업이 진행되는 동안 사용자 관점, 특히 20 개의 범위에서 입력을 계속하고 반환을 누르고 20 개의 값을 반복해야한다는 것은 매우 지루하다고 생각합니다.
원래 코드 :
def friendInput():
friendList = []
for listInput in range(20):
friendList.append(input("Please enter a friends name: "))
print("You added these to the list: "+' | '.join(friendList))
return friendList
시도 코드를 다시 쓰기 : 나는 몇 가지 연구를하고 .split()
기능을 포함하여 많은 것을 배웠하고이를 구현하기 위해 노력
def friendInput():
friendList = []
separator = ","
friendList = input("Please enter friend's names, separated with commas: ")
print("You added these to the list:",friendList.split(separator))
return friendList
, 실패했다. 버블 정렬 알고리즘 :
def bubbleSort(friendList):
for friends in range (0, len(friendList) - 1):
for x in range (0, len(friendList) - 1 - friends):
if friendList[x] > friendList[x+1]:
friendList[x], friendList[x+1] = friendList[x+1], friendList[x]
return friendList
오류 메시지 : 디버거가 TypeError:
'str을'개체가 항목 할당을 지원하지 않습니다 다시 던졌다까지 다, 내 머리에서 논리적 보였다. TypeError:
내 bubbleSort
기능의 일부를 인용에 간다 - friendList[x], friendList[x+1] = friendList[x+1], friendList[x]
, 저 좀 도와주세요
: 나는 가정 오류가 정말 그냥 액세스하고 명백하게 허용되는 문자열을 변경하기 위해 노력하고있어 말하는되어, 그것은 변함이 없다. 명확하고 간결하며 사용자에게 부담을주지 않는 코드 변경을 찾기 위해 고심하고 있습니다.
이 오류를 해결하기 위해 친절하게 제안 할 수 있습니까?
당신의 입력 기능 사용에'friendList = friendList.split (분리)', 당신은 작동하지 않는 문자열의 일부에 할당을하려고 노력하고 있습니다. 지금 당장 문자열 목록이 아닌 문자열을 반환하는 것입니다 (참고로 이것은 다시 쓰는 것을 의미합니다). –
빠른 반응과 대단히 감사합니다. 내가 해결책에 가까웠다 고 말하는 것이 공평 할까? – William
[왜 파이썬 문자열 split()이 분할되지 않는가]의 가능한 복제본 (https : // stackoverflow.com/questions/12238517/why-is-python-string-split-not-splitting) –