从带有后缀的Python列表创建子集

从带有后缀的Python列表创建子集,python,Python,我试图将python主列表分割成带有适当后缀的子列表。例如 主列表看起来像 M = [1,2,3,4,5,6] 我想创建一个子列表,如下所示 M_1_3 = [1,2,3] M_4_6 = [4,5,6] 这只是一个例子,因为我有一个千个元素的列表。我尝试了下面的“For循环”,但不起作用 for i in range(0,len(main_list),50): start = i end = i+50 'sub_list_'+str(start)+'_'+str(e

我试图将python主列表分割成带有适当后缀的子列表。例如 主列表看起来像

M = [1,2,3,4,5,6]
我想创建一个子列表,如下所示

M_1_3 = [1,2,3]
M_4_6 = [4,5,6]
这只是一个例子,因为我有一个千个元素的列表。我尝试了下面的“For循环”,但不起作用

for i in range(0,len(main_list),50):
    start = i
    end = i+50
    'sub_list_'+str(start)+'_'+str(end) = main_list[start:end]

Python不鼓励动态变量。使用字典:

sub_lists = {}
for i in range(0,len(main_list),50):
    start = i
    end = i+50
    sub_lists[str(start)+'_'+str(end)] = main_list[start:end]
使用元组比从整数创建字符串要好:

sub_lists = {}
for i in range(0,len(main_list),50):
    start = i
    end = i+50
    sub_lists[(start, end)] = main_list[start:end]

Python不鼓励动态变量。使用字典:

sub_lists = {}
for i in range(0,len(main_list),50):
    start = i
    end = i+50
    sub_lists[str(start)+'_'+str(end)] = main_list[start:end]
使用元组比从整数创建字符串要好:

sub_lists = {}
for i in range(0,len(main_list),50):
    start = i
    end = i+50
    sub_lists[(start, end)] = main_list[start:end]

您可以使用
exec
强制分配:

main_list = list(range(200))
for i in range(0,200,50):
    start = i
    end = i+50
    exec('sub_list_'+str(start)+'_'+str(end) +'= main_list[start:end]')

print(sub_list_0_50)

但是,这在Python中不是一个好的实践。

您可以使用
exec
强制赋值:

main_list = list(range(200))
for i in range(0,200,50):
    start = i
    end = i+50
    exec('sub_list_'+str(start)+'_'+str(end) +'= main_list[start:end]')

print(sub_list_0_50)

但是,这在Python中不是一个好的实践。

Python索引从0开始,因此建议使用M_0_2和M_3_5。Python索引从0开始,因此建议使用M_0_2和M_3_5。