[英]split list with specific rules
我想基於循環創建子列表,但仍然找不到如何做的邏輯?
''' source list'''
list = [1,2,3,4,5,6,7,8,9]
''' sublist goals'''
list_1 = [1,4,7]
list_2 = [2,5,8]
list_3 = [3,6,9]
list = [1,2,3,4,5,6,7,8,9]
list_1 = []
list_2 = []
list_3 = []
for j in range(1,4):
for i in range(j,len(list)+1,3):
if j == 1:
list_1.append(i)
if j == 2:
list_2.append(i)
if j == 3:
list_3.append(i)
print (list_1)
print (list_2)
print (list_3)
輸出:
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
只需創建一個 3x3 列表,然后根據條件將項目附加到列表中
li = [1,2,3,4,5,6,7,8,9]
#Create a 3x3 list
res = [ [] for _ in range(3)]
for idx in range(len(li)):
#Append elements accordingly
index = int(idx%3)
res[index].append(li[idx])
print(res)
輸出看起來像
[[1, 4, 7],
[2, 5, 8],
[3, 6, 9]]
除了其他人發布的內容之外,您還可以創建一個以列表名稱為鍵、以列表為值的字典,如下所示:
>>> for i in range(3):
... d["list_{}".format(i)] = [list[i], list[i+3], list[i+6]]
...
>>> d
{'list_2': [3, 6, 9], 'list_1': [2, 5, 8], 'list_0': [1, 4, 7]}```
有沒有人考慮過這一點?
>>> list=[1,2,3,4,5,6,7,8,9]
>>> list_1 = list[0::3]
>>> list_2 = list[1::3]
>>> list_3 = list[2::3]
>>> list_1
[1, 4, 7]
>>> list_2
[2, 5, 8]
>>> list_3
[3, 6, 9]
一個循環看起來像這樣
for i in range(0,3):
list_i = list[i::3]
print(list_i)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.