목록을 병합하는 동안 Python에서 'TypeError: 목록 인덱스는 str이 아닌 정수 또는 슬라이스여야 합니다' 처리
Python에서 액세스를 시도하는 중 문자열 인덱스를 사용하는 목록 요소는 종종 'TypeError: 목록 인덱스는 str이 아닌 정수 또는 슬라이스여야 합니다' 오류가 발생합니다. 이 오류는 일반적으로 두 목록을 단일 배열로 병합할 때 발생합니다.
이 오류를 방지하려면 목록 요소에 액세스하는 데 사용되는 인덱스가 정수인지 확인하는 것이 중요합니다. 다음은 제공된 Python 코드의 특정 문제와 이를 해결하는 올바른 방법입니다.
array_length를 정수로 변환: 원본 코드에서는 array_length가 할당됩니다. array_dates의 길이를 나타내는 문자열 표현입니다. 대신 len(array_dates)을 사용하여 얻을 수 있는 정수 길이 값이어야 합니다.
array_length = str(len(array_dates)) # Convert to: array_length = len(array_dates)
range() for 루프 사용: for 루프는 result_array의 인덱스를 반복합니다. 그러나 루프 정의는 array_length를 문자열인 반복 가능 항목으로 사용합니다. 대신, range(array_length)를 사용하여 정수를 반복합니다.
for i in array_length: # Convert to: for i in range(array_length):
자동 인덱스 증분: 원본 코드에서 i는 각 반복 후에 수동으로 증가됩니다. for 루프가 인덱스 변수를 자동으로 증가시키므로 이는 필요하지 않습니다.
i += 1 # Remove this line
zip()을 사용하는 대체 접근 방식:
또는, 동일한 길이의 두 목록을 병합하려면 zip() 함수를 사용할 수 있습니다. 이 함수는 각 목록에서 해당 요소를 가져와 새 목록을 만듭니다. 튜플의. 이 접근 방식은 대개 더 간결하며 수동 색인 생성이 필요하지 않습니다.
dates = ['2020-01-01', '2020-01-02', '2020-01-03'] urls = ['www.abc.com', 'www.cnn.com', 'www.nbc.com'] csv_file_path = '/path/to/filename.csv' with open(csv_file_path, 'w') as fout: csv_writer = csv.writer(fout, delimiter=';', lineterminator='\n') result_array = zip(dates, urls) csv_writer.writerows(result_array)
위 내용은 Python에서 목록을 병합할 때 'TypeError: 목록 인덱스는 str이 아닌 정수 또는 슬라이스여야 합니다.'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!