2017-09-29 5 views
-1

나는 목록이 : 나는 또한파이썬에서 목록에 저장된 다른 요소에 의해 튜플의 요소를 교체

main_list=[('a',[]),('b',[]),('c',[]),('d',[]),('e',[])] 

내 주요 유형에 튜플의 목록을

replace_by=['a1','b1','c1','d1','e1'] 

을 main_list에있는 각 튜플의 첫 번째 요소, 즉 a, b, c, d, e를 replace_by 목록의 해당 요소, 즉 a1, b1, c1, d1, e1로 바꿉니다.

아무도 내가이 파이썬 방법으로 나를 도울 수 있다면 고맙겠습니다! 미리 감사드립니다 !!

+1

어떻게 "대응"합니까? 색인으로? side-note : 튜플은 불변이며, 튜플을 측면에서 "대체"할 수는 없습니다. 새 튜플을 만들 수 있습니다! – alfasin

+1

튜플은 변경할 수 없으므로 튜플을 변경하는 대신 다른 데이터 구조를 사용하거나 * 대체 *해야합니다. 또한이 인스턴스에서지도와 같은 것을 사용하고 싶지 않을지 궁금합니다. 달성하고자하는 것을 설명하고 (예 : @alfasin이 제시 한 예상 출력의 예를 보여 주면) 도움이 될 것입니다. – SwiftsNamesake

+0

튜플은 변경할 수 없지만 내부에 목록이 없습니다. 그는'main_list [0] [1] .append (replace_by [1])'을 사용할 수 있으며 아무런 문제가 없습니다. –

답변

0

튜플은 제자리에서 수정할 수 없습니다. 그러나 쉽게 새 버전을 만들 수 있습니다.

replace_by=['a1','b1','c1','d1','e1'] 
main_list=[('a',[]),('b',[]),('c',[]),('d',[]),('e',[])] 

new_list = [(replace_by[i],b)for (i,(a,b)) in enumerate(main_list)] 
print(new_list) 
1

튜플을 변경할 수 없으므로 실제로 "바꿀"수는 없지만 replace_by 목록의 첫 번째 요소와 원래 main_list의 두 번째 요소를 사용하여 새 튜플을 만들 수 있습니다.

new_list = [(a,b[1]) for a,b in zip(replace_by,main_list)] 
+0

이것은 나를 도왔습니다! – Saaraj