Próbuję uzyskać najkrótszą drogę (możliwa postać) do uzyskania listy 3.
Lista 1 i Lista 2 są już podane jako argumenty i mają tę samą długość.
l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c', 'd', 'e']
Lista 3 powinna wyglądać (tak, musi to być lista):
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
podanejl1 = [1, 2, 3, 4, 5]
il2 = ['a', 'b', 'c', 'd', 'e']
już przypisanej konkretnej listy , czy też jest to pomysłl1
il2
mogą to być dowolne dwie listy o tej samej długości?Odpowiedzi:
Zip and Sum
Wypróbuj online!
Zasuwa dwie listy razem, a następnie dodaje wszystkie krotki, aby utworzyć jedną połączoną listę. Zip działa tylko wtedy, gdy listy mają taki sam rozmiar, w przeciwnym razie przycina dłuższą listę.
Dodano otoczenie,
[* ]
aby przekształcić je w listę, jak sugeruje FryAmTheEggman.źródło
list
zamiast[* (...) ]
+3 bajtów.Przydział plasterków
To trzy bajty dłużej niż przy użyciu rozwiązania Jo Kinga
c=[*sum(zip(b,a),())]
, ale jest fajne. Sytuacja może być krótsza (choć nie wiem, gdzie).źródło