2
다음과 같은 루프를 작성하는 더 좋은 방법이 있습니까?파이썬에서리스트 이해력을 줄이는 것
my_list = []
for key in my_set_of_keys:
for val1,val2 in my_dict[key]:
my_list.append((key,val2,val1))
내 시도는 아마 ... 조금 두서가 ...
my_list = list(chain.from_iterable(map(
lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
my_set_of_keys)))
my_list = reduce(lambda x,y: x+y,(map(
lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
my_set_of_keys)))
my_list = reduce(list.__add__, (map(
lambda key: [(key,val2,val1) for (val1,val2) in my_dict[key]],
my_set_of_keys)))
my_dict은 다음과 같습니다됩니다
'keyA' : { ('foo',1), ('bar',2), ('baz',3) }
'keyB' : { ... }
my_set_of_keys :
{ 'keyA', 'keyC', ... }
나는 이것을 사용해 봤지만 여전히 얻었습니다. 'nodepaths = [(key, val2, val1) val1의 val2, 그래프의 [key] 노드 세트의 키의 경우 NameError : 글로벌 이름 'key'가 정의되어 있지 않습니다. ' – beoliver
@ThemanontheClaphamomnibus : 내 대답에서 해결책을 시도하십시오. 문제는 실제로 루프의 순서입니다. 'my_set_of_keys'와'my_dict'가 정의되고 올바른 타입을 가지고 있다면 이것은 작동해야합니다. – Tadeck
최대한 빨리 받아 들일 것입니다. 그 명령은 나에게 오래 동안 던져주고있다! 그것은 아직도 나의 눈에서 거꾸로있다. .. 그러나 일한다! – beoliver