一只斗牛犬
尝试sum使用zip:print(sum(zip(main_list[::2], main_list[1::2], aux_list), ()))输出:('lst1', 'lst2', 'ax1', 'lst3', 'lst4', 'ax2', 'lst5', 'lst6', 'ax3')如果您希望结果是列表,请使用:print(list(sum(zip(main_list[::2], main_list[1::2], aux_list), ())))输出:['lst1', 'lst2', 'ax1', 'lst3', 'lst4', 'ax2', 'lst5', 'lst6', 'ax3']编辑:如果您希望它适用于所有不同的长度,请使用它:print(sum(zip(*[main_list[i::len(main_list) // len(aux_list)] for i in range(len(main_list) // len(aux_list))], aux_list), ()))输出:('lst1', 'lst2', 'ax1', 'lst3', 'lst4', 'ax2', 'lst5', 'lst6', 'ax3', 'lst7', 'lst8', 'ax4')同样,如果您希望结果是一个列表,请使用:print(list(sum(zip(*[main_list[i::len(main_list) // len(aux_list)] for i in range(len(main_list) // len(aux_list))], aux_list), ())))
阿晨1998
这可能更容易理解,并且可以根据不同的列表大小进行缩放:main_list = ['lst1','lst2','lst3','lst4','lst5','lst6'] aux_list = ['ax1','ax2','ax3'] # get subdivision sizes in main_listm = len(main_list) // len(aux_list)# create list of lists (in blocks)z = [main_list[m*i:m*(i+1)] + [aux] for i,aux in enumerate(aux_list)]# flattenz = [k for sec in z for k in sec]z# ['lst1', 'lst2', 'ax1', 'lst3', 'lst4', 'ax2', 'lst5', 'lst6', 'ax3'](请注意,如果您的列表不是可分割的大小,这将给出意外的输出和/或中断)