2017-11-06 4 views
0

나는 다음과 같은 코드를 작성 다른 목록을 반환 :목록 내부 요소에 1을 추가하고

population = [[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [1], [0]], 
[[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [3], [1]], 
[[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [4], [2]], 
[[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [3], [3]]] 

def ManipulateFitness(population): 
    mf=[] 
    populaion_m = population 
    for game in range (0, len(population)): 
     m = [f+1 for f in population[game][1]] 
     mf.append(m) 
     manipulted = [m for f in population[game][1] for m in mf 
     population_m.append(manipulated) 
    return (population_m) 

내가 (그냥 목록에서 1 번째 요소를 추가하는 제 3을 위해 노력하고 있어요 단지 각각의 염색체에 대해 하나의 계수기 일 뿐이며, 다른 값을 가진 동일한 목록을 반환하지만 나중에 모두 필요하기 때문에 이름이 다릅니다. 나는 이것 같이 그것을 시도하고 있었다 그러나 일하지 않았다, 나는 가치를 생성하는 것을 처리했다 그러나 나는 정확한 장소에있는 명부에 그들을 추가하는 성공하지 못했다. 어떤 제안?

+1

1. 목록의 두 번째 요소는'[[001110011011000,1] , [3], [1]]'에 추가하면 1을 더할 수 없습니다. "add 1"을 정의하십시오. 2. "작동하지 않았습니다"는 허용되는 오류 설명이 아닙니다. – timgeb

+1

당신이 직면 한 오류를 제공하지 않았습니다. 하나는 오타가 있습니다. 당신은'population_m'과'populaion_m'을 가지고 있습니다. 'populaion_m = population' (sic)은'population'의 복사본을 만들지 않고 같은 객체에 다른 이름을 만듭니다. – roganjosh

답변

1

이 답변은 각 목록의 두 번째 항목에 추가 요소 1를 추가 할 것으로 가정합니다

population = [[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [1], [0]], [[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [3], [1]], [[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [4], [2]], [[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [3], [3]]] 
new_population = [[b+[1] if i == 1 else b for i, b in enumerate(a)] for a in population] 

출력 :

[[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [1, 1], [0]], [[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [3, 1], [1]], [[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [4, 1], [2]], [[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [3, 1], [3]]] 

그러나, 당신은 단지 요소를 증가하고자하는 경우 두 번째 목록에서 다음을 시도 할 수 있습니다.

new_population = [[[b[0]+1] if i == 1 else b for i, b in enumerate(a)] for a in population] 

출력 :

[[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [2], [0]], [[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [4], [1]], [[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [5], [2]], [[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [4], [3]]]