Czy istnieje sposób na wydrukowanie dwóch (lub więcej) elementów w iteracji w liście/słowniku/ustawieniu ze zrozumieniem? Prostym przykładem jest wyprowadzenie wszystkich dodatnich i ujemnych podwójnych liczb całkowitych z 1 do 3 (to jest {x | x = ±2n, n ∈ {1...3}}
), czy istnieje składnia podobna do następującej?Zrozumienia: wiele wartości na iterację
>>> [2*i, -2*i for i in range(1, 4)]
[2, -2, 4, -4, 6, -6]
wiem mogłem krotki wyjściowych (+i,-i)
i spłaszczyć, ale zastanawiałem się, czy istnieje jakiś sposób, aby całkowicie rozwiązać problem za pomocą jednego ze zrozumieniem.
Obecnie jestem produkcję dwóch list i ich łączenie (które działa, pod warunkiem, że kolejność nie jest ważna):
>>> [2*i for i in range(1, 4)] + [-2*i for i in range(1, 4)]
[2, 4, 6, -2, -4, -6]
pamiętać, że jeśli kolejność nie jest ważna, prawdopodobnie używasz niewłaściwego struktury danych - '{2 * i for i in range (1, 4) } | {-2 * i dla i w zakresie (1, 4)} ". –
@ Klasyczne, które ma efekt uboczny unikania puli elementów wynikowych, co może być pożądane lub nie. –
Dlatego * prawdopodobnie * - jeśli potrzebujesz duplikatów, tak, zestawy są nieodpowiednie. –