2014-11-16 2 views
0

저는 파이썬을 처음 사용합니다. 나는 아래와 같은 목록을 가지고있다.어떻게 값을 목록에 넣을 수 있습니까?

1 [2,3,4] 10  
2 [3,4]  20  
3 [4]  30 

그런 다음 나는 요소의 위의 2 열은 아래 1 열이 될 수 있도록 아래와 같이 2 열에서 총 요소로 나누어 위의 마지막 열 아래 2 열을 계산합니다.

2 10/3  
3 10/3  
4 10/3  
3 20/2  
4 20/2  
4 30/1 
+0

데이터가 목록이 아니며, 실제로는 무엇입니까? 두 번째 열에 목록이있는 CSV? –

+0

그것은 CSV가 아닙니다. 나는 어떤 과정을 거쳤으며이 목록을 만들었다. 그리고 지금 나는 아래 목록을 얻을 필요가있다. – Wilson

+0

그것은 [[1, [2, 3, 4], 10]'등입니까? –

답변

1

먼저 데이터를 좀 더 사용하기 쉬운 형식으로 다시 포맷해야합니다. 몇 가지 추가 단계가 포함되어 모든 작업 과정을보다 잘 이해할 수 있습니다.

input_list = [] ### initializes the list you'll be using (otherwise you have no list to add to) 

row_1 = [1,[2,3,4], 10] 
row_2 = [2,[3,4], 20] 
row_3 = [3,[4], 30] 

input_list.append(row_1) 
input_list.append(row_2) 
input_list.append(row_3) 

이 모든 데이터가과 같이 input_list에 할당되는 발생합니다, 지금 당신이 찾고있는 답을 얻기 위해서 반복하는 데 사용할 수 있습니다

input_list = [[1,[2,3,4], 10], [2,[3,4], 20], [3,[4], 30]] 

. 물론 각 행을 자체 변수로 정의하지 않고 한 번에 모든 데이터를 input_list으로 정의하여 각 행을 input_list에 추가 할 수 있습니다. 그러나 가독성과 진행되는 모든 것을 이해하기 위해 위의 단계별 접근법을 사용했습니다. 이제 매개 변수로 input_list와 함수를 작성하여, 당신은 operation를 호출, 두 가지 간단한 루프 (다른 내 일) 당신이 필요로 할,

def operation(input): 
    output = [] ### initializes your final output list variable 
    for row in input: 
     for number in row[1]: 
      column1 = row[0] 
      column2 = number 
      column3 = row[2]/len(row[1]) 
      output.append([column1, column2, column3]) 
    return output 

그리고 실제로 당신이 필요로하는 출력을 만들 수를 만들 수 있습니다 매개 변수로 input_list와 기능, output_list이 무엇이든 operation 함수가 반환합니다 (출력)에 할당됩니다 새로 정의 변수입니다

output_list = operation(input_list) 

.

다음 읽을 수있는 형식의 목록을 보려면,뿐만 아니라이 실행

for row in output_list: 
    print row 

이 당신을 위해 무엇을 찾고있는 당신을 제공한다!

+0

row_1의 입력은 [1, [2,3,4], 10], 어떻게 관리해야합니까? – Wilson

+0

나는 이것을 처리하기 위해 위에서 편집했다. 행 번호를 각 목록의 첫 번째 항목으로 추가해야합니다. – skiman01

관련 문제