중첩 된 목록에서 특정 요소를 바꾸는 함수를 만들어야합니다. 이것은 im 작업 코드이고 목록은 dg입니다.
events_b_list = []
dg = [[[a1,b1], [a1,b1]],[[a2,b2], [a2,b2]], [[a3,b3], [a3,b3]],[[a4,b4], [a4,b4]]]
for recomb_r1 in [0,1]:
if (recomb_r1 == 0):
p_1 = (1-r)
dg_0 = dg
else:
p_1 = r
for i in dg swap_r()
dg.append()
for recomb_r2 in [0,1]:
if (recomb_r2 == 0):
p_2 = (1-r)
dg_0 = dg
else:
p_2 = r
for i in dg swap_r()
dg.append()
recomb_r1은 첫 번째 b1과 첫 번째 b3 간의 스왑을 나타냅니다. [[[a1, b1 ], [a1, b1]], [[a2, b2], [a2, b2]], [[a3, b3 ], [a3, b3]], [[a4, b4], [a4, b4]]]. 기본적으로 recomb_r1 == 0이면 dg의 현재 목록은 변경되지 않지만 recomb_r1이 발생하면 변경된 요소와 함께 새 변경된 목록이 dg에 추가됩니다. 따라서 새로운 dg는 다음과 같습니다.
dg= [[[a1,b1], [a1,b1]],[[a2,b2], [a2,b2]], [[a3,b3], [a3,b3]],[[a4,b4], [a4,b4]], [[a1,b3], [a1,b1]],[[a2,b2], [a2,b2]], [[a3,b1], [a3,b3]],[[a4,b4], [a4,b4]]]
마찬가지로 다음 단계는 두 번째 b1과 두 번째 b4 사이의 다른 스왑입니다. 스왑이 발생하지 않으면 최신 목록은 동일하게 유지되며 목록이 목록의 요소를 교체하고 dg (변경 사항으로 구성됨)에 새 목록을 형성해야합니다. 변경 사항의 새 목록을 생성하기 위해 스위치를 수행하고 dg를 반복 할 수있는 기능이 있는지 궁금합니다.
원본의 복사본을 만들어 요소를 교체 한 다음 간단히 연결할 수 있습니다.
import copy
events_b_list = []
dg = [[[a1,b1], [a1,b1]],[[a2,b2], [a2,b2]], [[a3,b3], [a3,b3]],[[a4,b4], [a4,b4]]]
for recomb_r1 in [0,1]:
if (recomb_r1 == 0):
p_1 = (1-r)
dg_0 = dg
else:
p_1 = r
fg = copy.deepcopy(dg)
fg[0][0][1], fg[2][0][1] = fg[2][0][1], fg[0][0][1]
dg = dg + fg
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다