2016-06-05 2 views
1

이전 목록을 열거하여 새로운 색인 목록을 만들려고합니다. 기본적으로 내가 원하는 것은 다음과 같습니다.목록을 열거하여 새로운 색인 목록을 만드시겠습니까?

각 요소에 대한 인덱스를 얻기 위해 요소 목록을 열거합니다.

board = ["O","O","O","O","O"] 
for index,y in enumerate(board): 
    print(index,end=" ") 

주는 : : 지금 새 목록에 그 숫자를 만들고 싶어,하지만 어떻게 그렇게하는 단서가 없다

0 1 2 3 4 

나는이 코딩.

감사합니다. 죄송합니다. 아직 초보자이며, 물건을 놓으려고 애쓰는 중입니다.

+0

질문에 사과하지 않아야합니다. 조금 더 검색하여 해결책을 찾았을 지 모르지만 잘 형식화 된 좋은 품질의 질문을 게시했습니다. 재미있는 파이썬을 배우십시오! – Nicarus

답변

1

당신은 아마 딱 맞는 길이의 범위해야한다 : 당신은 하나 개의 번호를 전달하면

indices = list(range(len(board))) 

을 범위 : 당신은 그냥 당신이 사용할 수있는 모든 숫자를 원하는 경우

board = ["O","O","O","O","O"] 
indices = list(range(len(board))) 
print(indices) 
> [0, 1, 2, 3, 4] 
+0

아, 그게 훨씬 간단합니다. 하지만 어떻게 [0,1,2,3,4]와 반대로 0 1 2 3 4로 나타나도록 인쇄 할 수 있습니까? – greatdonut

+0

'print (''.join (indices))'https://docs.python.org/3.5/library/stdtypes.html#str.join – Nicarus

+0

고마워요! 새로운 목록의 요소가 정수이기 때문에 나는 그것을 시도했지만 불행하게도 오류가 발생했습니다. 나는 print ("".join (str (i) for i new)를 코딩했다.) 그리고 그것을 얻었다. 그래서 그것은 마침내 작동한다! – greatdonut

0

을 전달 된 숫자 (제외)까지 숫자 0 인 반복자를 반환합니다. 그런 다음 목록 함수를 사용하여 목록으로 변환합니다.

result = range(len(board)) 
0

찾고있는 사람 : Numpy Arange

import numpy as np 

enumerated = np.arange(len(board)) 
0

가 난 그냥처럼 보이는 배열을 생성 NumPy와 arange에를 사용합니다 :

result = [index for index,y in enumerate(board)] 

은 또한 당신이 range 기능을 사용할 수 있습니다 : 당신은 그렇게 지능형리스트를 사용할 수 있습니다

+1

나는이 문제에 대해'numpy' 또는 임의의 외부 라이브러리가 과도하다고 생각할 것이다. OP는 초보자이므로 현재로서는이 방법이 최선의 방법이 아닙니다. – Nicarus

+0

사실이에요. 기초부터 시작하십시오. – zauberfein

1

사용 목록 이해 : 항상 __len__ -method를 구현하는 객체입니다

indices = [index for index, y in enumerate(board)] 

board 경우, 당신은 또한 range를 사용할 수 있습니다

indices = list(range(len(board))) 
0

간단한 방법은 다음과 같습니다

board = ["O","O","O","O","O"] 
newlist = [] 
for index,y in enumerate(board): 
    newlist.append(index) 

목록 작성을 사용하는보다 고급 방법은 다음과 같습니다.

newlist = [index for index, value in enumerate(board)] 
관련 문제