R에서 왔을 때, 이것은 이해하기 어렵습니다. 목록에서 요소를 가져 오는 위치는 0
입니다. 문제는 하나의 목록을 사용하여 다른 목록의 항목을 선택하는 것이 여기 같은 속도로 실행되지 않는다는 것입니다.인덱스가 다른 인덱스를 사용하여 동기화되지 않았습니다.
list1 = [1,2,3,4]
list2 = [1,2,3,4]
for x in range(0, len(list1)):
print(list1[list2[x]])
이 발생합니다 : 나는리스트 2의 끝에 항목을 목록 1의 시작에 별도의 항목을 넣어 추가
>> 2
>> 3
>> 4
>> IndexError: list index out of range
이 문제는 그렇지 않은 이유만으로 (정지 이와 같은 동기식).
분명히 나는 언어에 익숙하지 않다. 한 목록의 값을 사용하여 다른 값을 선택하는 올바른 방법은 무엇일까요?
이것을 생각하는 올바른 방법입니까?
for x in range(0, len(list1)):
print(list1[list2[x]-1])
매우 유용한 정보, 찾고있는 정보! 감사. – PascalVKooten
추한'-1'을 피할 수는 없지만, 파이썬을 사용하는 사람들에게는 정상입니다. – PascalVKooten
우리는'list2'를 시작하기에 덜 가치있는 값으로 만들어서, 하나 빼기 필요는 없습니다. 'R's' 색인은 자기 일관성이있는 것처럼 자기 일관성있는 시스템입니다. 한 시스템에서 다른 시스템으로 변환 할 때만 문제가 발생합니다. Edsger Dijkstra는 [0 기반 인덱싱이 바람직한 이유에 대한 논의] (http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF)를 작성했습니다. – unutbu