my_list=["a","b","c"]
으로 목록이 있다고 가정 해보십시오. 내가 뭘 원하는 내가 그들의 이름에 따라 그들에 일부 요소를 추가 할 수 있도록다른 목록의 요소 이름으로 빈 목록 만들기
a=[] b=[] c=[]
로 빈 목록을 만드는 것입니다.
my_list=["a","b","c"]
으로 목록이 있다고 가정 해보십시오. 내가 뭘 원하는 내가 그들의 이름에 따라 그들에 일부 요소를 추가 할 수 있도록다른 목록의 요소 이름으로 빈 목록 만들기
a=[] b=[] c=[]
로 빈 목록을 만드는 것입니다.
가고, 그것은 당신에 의해 입력 된 것처럼 명령을 실행하는 기능 exec
를 사용하지만 당신이 매우 안전하지 않습니다 명심 동적 변수 이름
for i in my_list:
exec(i+'=[]')
로 i
를 사용 do
프로그래밍 방식으로 변수를 만드는 것은 매우 나쁜 생각입니다. 대신 키와 그 이름 사전을 확인하십시오
my_lists = {key:[] for key in my_list}
그런 다음이처럼에 추가 할 수 있습니다
my_lists['a'].append(some_data)
를 이것은 또한 당신이 필요로하는 경우에 그들을 통해 당신에게 쉽게 루프 수 있다는 장점을 제공합니다 에. 여기
나는 이미 이것을 업 그레 이드했지만 새로운 Python 프로그래머가이 게시물을 발견하고 "프로그래밍 방식으로 변수를 나쁜 아이디어로 만드는 이유는 무엇입니까?"라고 묻는 미래를 미리 생각하고 있습니다. 왜 이런 말을했는지 좀 설명해 주시겠습니까? –
여러 가지 이유로 나쁜 생각입니다. 1) 사용자 입력으로 변수를 만들면 사용자가 변수 중 하나를 쉽게 덮어 쓰거나 키워드를 사용하려고 할 수 있습니다. 2) 변수를 추적하는 IDE에서 도구를 효과적으로 비활성화하여 디버깅을 악몽으로 만듭니다. 3) 논리적으로 그룹화 된 항목은 여러 떼; 이것은 루핑을 더 쉽게 만들고 대부분의 그룹은 어떤 시점에서 루프를 필요로한다. 4)이 변수들을 읽는 것은 또 다른 지저분한'exec' 호출을 포함 할 것이다. 5) 얼마나 많은 변수가 만들어 졌는지 알지 못한다면 로컬 네임 스페이스를 검사하는 또 다른 해킹 방법이 필요합니다. 6) 확실한 다른 이유 ... – Novel
나는 그가 당신을 위해 편집 한 것이라고 생각합니다 :) – nir0s
왜 이것을하고 싶습니까? 아마도 목록 목록이 여기에서 잘 작동 할 것입니다. – ForceBru
키가'a','b','c'이고 값이 빈 목록 인'dict'은 아마 사용하지 않았을 것입니다. – Akavall
이름을 기반으로 목록에 요소를 추가하려면 키와 이름으로 된 사전을 값으로 사용할 수 있습니다. – chatton