Czy istnieje sposób użycia operatora "splat" (np. a, *rest = somelist
) w taki sposób, że zużywa on pewną liczbę elementów?Rozpakuj określoną liczbę elementów w Pythonie?
Przypadek użycia: chcę podzielić dane wejściowe na numer, listę list, inny numer i inną listę list.
Moje wejście wygląda następująco:
5
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
5
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
I chcę nazwy first_num
, first_arrangement
, second_num
, second_arrangement
takie, że:
first_num == 5
first_arrangement == [[1, 2, 3, 4], [5, 6, 7, 8], ...]
i tak dalej.
Aby to zrobić, dobrze byłoby móc spożywać określoną liczbę przedmiotów z pozycji iteracji. Coś takiego byłoby idealne jako etap pośredni: first_num, *[4]first_arrangement, second_num, *[4]second_arrangement = lines
Jaki jest normalny/kanoniczny/Pythoniczny sposób rozwiązania tego problemu?
Którą wersję python używasz? – thefourtheye
Nie możesz po prostu podzielić swoich argumentów => 'first_arrangement = args [1: 5]' ...? –
W odpowiedzi na pierwsze pytanie, nie ma sposobu, aby to zrobić z '*' – MJeffryes