[英]How to find the numbers in a list that come in numerical order in Python3?
我有一個列表,像這樣:
list_1 = [1,2,2,3,1,2]
我想創建另一個嵌套列表,如下所示:
[[1,2,2,1,2],[2,2,3,2]]
第一個嵌套列表僅由1和2組成,因為根據數字順序,2在1之后,1必須包含。 3不在第一個嵌套列表中,因為1之后是2而不是3。
在第二個嵌套列表中,有2個和3個,因為3個來自2和2之后需要包含。 1不存在,因為一個人不會在2之后來。
我怎樣才能在Python 3中實現這一點?
list_1 = [1,2,2,3,1,2]
m = max(list_1)
print([[i for i in list_1 if i in [j,j+1] ] for j in range(1,m)])
#[[1, 2, 2, 1, 2], [2, 2, 3, 2]]
#list_1 = [1,2,2,3,1,2,4,2,3,6,5,4]
#->[[1, 2, 2, 1, 2, 2], [2, 2, 3, 2, 2, 3], [3, 4, 3, 4], [4, 5, 4], [6, 5]]
如果你沒有功能性的襯墊,你可以這樣做。
def listsep(lst, sep):
l1 = []
l2 = []
for v in lst:
if v <= sep:
l1.append(v)
if v >= sep:
l2.append(v)
return [l1, l2]
print(listsep([1,2,2,3,1,2], 2))
只需迭代輸入並附加到每個列表,如果小於/等於或大於/等於。 這只迭代輸入一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.