2016-11-09 2 views
0

에서 항목의 위치를 ​​업데이트해야합니다. [0][0]의 항목은 특별하며 "h"이라고합니다. 나는 그것이 시간 (예에서 다른 항목에서 목록에서 그것을 "이동"이 [0][1]에서 [1][1]에 다음 [0][0]에서 [0][1]로 이동할 수 있다는 환상을 제공하므로 "h"의 업데이트가 좋아하지만 것 [1][1]에서 [3][5]까지) 내 중첩 목록에있는 가능한 모든 쌍의 숫자에 대해 작업을 수행하는 함수를 작성하려고합니다. 최대 6 개 항목 6 개이므로 최대 값은 [6]이됩니다. 그러나, 나는 "중립적 인 항목"을 내 기능에 넣을 방법을 찾을 수 없다. 나는 이런 식으로 뭔가를 시도했다 (그래서 [0][0]에서 [0][1] 등으로 이동) : 시간이 어디에 있든, 함수가 따라 위치를 업데이트내가이 중첩 된 목록을 중첩 된 목록 파이썬

for sublist in list: 
     for item in sublist: 
      h=list[n][n+1] 

그래서. 그러나 파이썬은 문자열이기 때문에 n을 사용할 수 없다고 알려줍니다.

내가 잠재적으로 무엇을 할 수 있습니까? 기능이 올바른 도구입니까? 다른 것을 사용해야합니까?

답변

0

그것은 매우 간단합니다. for loop을 작성하고 [i][i]에서 [i][i+1]으로 항목의 위치를 ​​이동 한 다음 [i][i+1]에서 [i+1][i+1]으로 항목을 이동해야합니다. 예를 들어 보겠습니다. 처음에 우리의 문자열이 같다 :

for i in range(len(my_list) -1): 
    my_list[i][i+1], my_list[i][i] = my_list[i][i], my_list[i][i+1] 
    print 'New position --->', my_list 
    my_list[i][i+1], my_list[i+1][i+1] = my_list[i+1][i+1], my_list[i][i+1] 
    print 'New position --->', my_list 

한 줄의 목록을 출력 할 것이다 : 여기

my_list = [['Here', '', ''], ['', '', ''], ['', '', '']] 

그리고 우리의 루프입니다. 당신의 명료성을 위해, 나는 그것이 라인 3x3 행렬을 설명 할 것입니다.

#Initially, position = 0, 0 
[['Here', '', ''], 
['', '', ''], 
['', '', '']] 

# for i = 0, first print, position = 0, 1 
[['', 'Here', ''], 
['', '', ''], 
['', '', '']] 

# for i=0, second print, position = 1, 1 
[['', '', ''], 
['', 'Here', ''], 
['', '', '']] 

# for i=1, first print, position = 1, 2 
[['', '', ''], 
['', '', 'Here'], 
['', '', '']] 

# for i=1, second print, position = 2, 2 
[['', '', ''], 
['', '', ''], 
['', '', 'Here']] 
+0

와우, 음, 그래, 나는 바보 같아. 나는 그것에 대해 생각해 봤어야했다. 나는 항상 내가 모르는 물건을하려고 노력하고, 가장 단순한 물건에 대해 생각하지 않는다. 어쨌든, 당신의 도움에 대해 대단히 감사한다 !! 좋은 하루 되세요! –