2014-11-16 3 views
-1

리스트를 3 개의 새로운리스트로 슬라이싱하려고 시도했지만 제 방법이 문제가있는 것처럼 보입니다. 너희들이 내가 어떻게해야되는지 볼 수있게 도와 줄 수 있니? !파이썬리스트를 새로운 파이썬리스트로 조각 내기

quiz = [[91, 94, 38, 48, 70, 85, 94, 59], [78, 96, 90, 55, 77, 82, 94, 60], [99, 94, 82, 77, 75, 89, 94, 93], [49, 92, 75, 48, 80, 95, 99, 98]] 
midterm = [] 
final = [] 

내가, 중간은 그 다음이이 목록의 처음 다섯 개 번호를 가지고 퀴즈를 만들려고 주셔서 감사합니다, 최종 목록의 마지막 번호가 있습니다

quiz = [[91, 94, 38, 48, 70,], [78, 96, 90, 55, 77], [99, 94, 82, 77, 75,], [49, 92, 75, 48, 80]] 
midterm = [[85, 94,],[82, 94,], [89, 94,], [95, 99,]] 
final = [[59], [60], [93], [98]] 

과 이 작품은 어떻게

quiz = [[91, 94, 38, 48, 70, 85, 94, 59], [78, 96, 90, 55, 77, 82, 94, 60], [99, 94, 82, 77, 75, 89, 94, 93], [49, 92, 75, 48, 80, 95, 99, 98]] 
midterm = quiz[5:2] 
final = midterm[5:1] 
+0

을 사용하고 계십니까? – bwegs

답변

1
midterm = [i[5:7] for i in quiz] 
final = [i[7:] for i in quiz] 
quiz = [i[:5] for i in quiz] 

: 여기 내 코드입니다

[]은 for 루프의 압축 버전입니다. 예를 들어, 위의 코드는 다음과 같습니다 :

for i in quiz: 
    midterm.append(i[5:7]) 
for i in quiz: 
    final.append(i[7:]) 

tmp = [] 
for i in quiz: 
    tmp.append(i[:5]) 
quiz = tmp 

어느 꽤 많이 퀴즈의 모든 요소를 ​​반복하고 2 개, 하나는 별도의 배열에 대한 다섯 걸립니다. 당신이 잘못한 것은 퀴즈를 2 차원 배열로 취급하지 않고 1 차원 배열로 취급한다는 것입니다.

현재 코드는 퀴즈의 각 배열에있는 두 번째에서 다섯 번째 정수가 아니라 두 번째에서 다섯 번째 정수 배열 인 midterm에 대한 배열 퀴즈의 두 번째에서 다섯 번째 요소를 사용합니다. 여기

0

당신은 이동 : 정확히으로 실행하는 문제가 무엇인지 list comprehension

>>> quiz = [[91, 94, 38, 48, 70, 85, 94, 59], [78, 96, 90, 55, 77, 82, 94, 60], [99, 94, 82, 77, 75, 89, 94, 93], [49, 92, 75, 48, 80, 95, 99, 98]] 
>>> new_quiz = [ x[:5] for x in quiz ] 
>>> mid_term = [ x[5:7] for x in quiz ] 
>>> final = [ x[-1:] for x in quiz ] 
>>> new_quiz 
[[91, 94, 38, 48, 70], [78, 96, 90, 55, 77], [99, 94, 82, 77, 75], [49, 92, 75, 48, 80]] 
>>> mid_term 
[[85, 94], [82, 94], [89, 94], [95, 99]] 
>>> final 
[[59], [60], [93], [98]] 
관련 문제