2012-10-02 7 views
1

이 문제를 해결하기 위해 노력하고 있지만 두 번째 부분을 알아낼 수 없습니다. 역방향 목록을 사용하여 시도했지만 어떻게 계획했는지 작동하지 않았습니다.목록에있는 목록

  1. L1 = [[1],[1,2],[1,2,3],[1,2,3,4]],
  2. = L2 [[4],[3,4],[2,3,4],[1,2,3,4]] :

    (예를 들어 [1,2,3,4]) 다음 중첩리스트를 생성하는 프로그램을 작성하는리스트 L을 감안. 지금까지이

내 코드 :

mylist=[,1,2,3,4] 
print("Orginal list L=",mylist) 
n=len(mylist) 
l1=[] 
l2=[] 


for x in range(1,n+1,1): 
    l1.append(mylist[0:x]) 
print("L1=",l1) #prints final product of l1 


mylist.reverse() #this is where i get messed up 
for x in range(1,n+1,1): 
    l2.append(mylist[0:x]) 
print("L2=",l2) 

답변

2

:

마일리스트 [-1] -> 4

이 작동합니다 점을 감안

:

mylist=[1,2,3,4] 
print("Orginal list L=", mylist) 
n=len(mylist) 
l1=[] 
l2=[] 

for i in range(1, n+1): 
    l1.append(mylist[0:i]) 
    l2.append(mylist[-i:]) 
print("L1=", l1) 
print("L2=", l2) 
+0

목록 이해력을 사용할 수 있습니다. – arshajii

+0

고마워요! 그래서 -i는 그렇게 작동하게합니까? –

+0

그것은 2 LC 걸릴 wouldnt? 루프 대 1? –

0

목록을 반대로 변경 해달라고 두 번째 루프 당신은 파이썬에 부정적인 인덱스를 사용할 수 있습니다

for x in range(n-1,-1,-1): 
    l2.append(mylist[x:]) 
1

남자, 나는 지능형리스트를 사랑 해요.

L1 = [L[:i+1] for i in xrange(len(L))] 
L2 = [L[-i-1:] for i in xrange(len(L))] 

목록 작성은 목록 작성을위한 쉬운 방법으로 생각할 수 있습니다. 일반적으로 자신이 for x in y: ... list.append(z)을 수행하는 것을 보면 목록의 이해가 더 짧고 우아한 해결책이 될 수 있습니다.

+0

그래, 우리 모두는 그렇지 않아. – arshajii

1
lst = [1,2,3,4] 
[lst[0:i] for i in range(1,5)] 
[lst[-i:] for i in range(1,5)] 
관련 문제