我有一个50,000个整数的列表:
我想从这个大型列表中创建一个子列表列表。
通过在列表中查找与1,000,000列表的第一个值有差异的位置来创建子列表。
以下是我的代码:
sub_pos_list = []
for i in range(0, len(pos_list)):
difference = pos_list[i] - pos_list[0]
if difference <= 1000000:
sub_pos_list.append(pos_list[0:i])
但是,这只能获得第一个1,000,000的差异。我想从列表中删除此区域并重新开始。
我想创建1,000,000个差异的多个子列表,然后列出这些子列表。
有任何建议怎么做?
答案 0 :(得分:1)
如果我理解了你想要达到的目标,那就是解决方案:
sub_pos_list = []
last_found_pos = 0
for i in xrange(last_found_pos, len(pos_list)):
difference = pos_list[i] - pos_list[last_found_pos]
if difference >= 1000000:
sub_pos_list.append(pos_list[last_found_pos:i + 1])
last_found_pos = i
自:
pos_list = [0, 5, 1000000, 1000005, 2000005]
它会给你:
sub_pos_list == [ [0, 5, 1000000], [1000000, 1000005, 2000005] ]