Załóżmy, że chcę zainicjować 6 list po 21 liczb w dynamiczny sposób. Jak to zrobić?
Lubić,
temporal_id1 = [0, 1, 2, ...., 20]
temporal_id2 = [21, 22, 23, ...., 42]
. .
. .
. .
temporal_id6 = [105, 106, ...., 125]
To, co robię, jest statyczne. Coś takiego:
temporal_id1 = []
for i in range(0,21):
temporal_id1.append(i)
temporal_id2 = []
for i in range(21, 42):
temporal_id2.append(i)
temporal_id3 = []
for i in range(42, 63):
temporal_id3.append(i)
temporal_id4 = []
for i in range(63, 84):
temporal_id4.append(i)
temporal_id5 = []
for i in range(84, 105):
temporal_id5.append(i)
temporal_id6 = []
for i in range(105, 126):
temporal_id6.append(i)
Ale to jest bardzo naiwne. I mam do czynienia z dużymi zbiorami danych, gdzie muszę zainicjować 107 tablic z 4117 elementami w każdym z nich.
Wymyśliłem coś takiego:
for i in range (0, 6):
initialize list temporal_i with values (21 * i , 21 * (i+1)) ------ (?)
Chcę tylko wiedzieć, jakie zdanie powinienem napisać w wierszu (?).
Odpowiedzi:
0 dla odpowiedzi № 1Spróbuj w ten sposób skorzystać ze zrozumienia listy:
[range(21* i, 21 * (i+1)) for i in range(0,6)]
Musisz tylko podać zakres (21 * i, 21 * (i + 1)), zanim słowo kluczowe będzie działać.