python - 创建列表中存在的顺序整数的子列表并将它们存储在python中的另一个嵌套列表中
问题描述
我有一个这样的数组列表:
list = [1,2,3,4,9,1,12,9,8,7,8,9,10,12,16,1,2,3,4,5,6,7,8,9,10]
我想从有序数字列表中创建一个子列表(它们已经在 arr_list 中按顺序排列,例如 1、2、3、4 已经按顺序排列,类似 7、8、9、10 和最后 10 个数字)
最终输出将如下所示:
[[1,2,3,4],[7,8,9,10],[1,2,3,4,5,6,7,8,9,10]]
尝试比较第一个 for 循环的第 i 个元素是否小于第二个 for 循环的第 j 个元素。
这是我尝试过的:
sub_list=[]
for i in range(0,length_of_list):
for j in range(i+1,length_of_list):
if (arr_list[i] < arr_list[j]):
sub_list.append(arr_list[i])
else:
pass
python新手,非常感谢任何线索。
解决方案
尝试这个...
res, temp = [], []
lst = [1,2,3,4,9,1,12,9,8,7,8,9,10,12,16,1,2,3,4,5,6,7,8,9,10]
for i in lst:
if (not temp) or (temp[-1] == i-1):
temp.append(i)
else:
res.append(temp)
temp = [i]
res.append(temp)
print([i for i in res if len(i)>1])
输出:
[[1, 2, 3, 4], [7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
告诉我它是否适合你...
推荐阅读
- leaflet - 无法访问 Leaflet.Geoman 中的 event.layer
- javascript - google.maps.Geocoder 显示空结果
- magento2 - Magento 2 显示缺货的可配置产品
- python - 如何将向量中最近的元素与元素相关联
- batch-file - 批处理文件 - wmic - 空行
- scala - 是否可以在 Scala List 或 Map 中保留多个 DataFrame 以进行迭代处理
- sorting - 如何在 SAP ABAP 中对从用户接收到的数据进行排序,从大到小?
- azure - 使用 Azure 策略将客户管理的密钥附加到存储帐户
- sql - 每个连续行 BIGQUERY SQL 之间的时间戳差异
- java - 如何忽略在 Java 中不能分成 3 列的行?