Tôi có một danh sách các số nguyên ...danh sách nhóm của ints bởi liên tục chuỗi
[1,2,3,4,5,8,9,10,11,200,201,202]
Tôi muốn nhóm chúng thành một danh sách liệt kê trong đó mỗi sublist chứa số nguyên có thứ tự đã không bị phá vỡ. Như thế này ...
[[1,5],[8,11],[200,202]]
Tôi có một công việc khá phiền phức xung quanh ...
lSequenceOfNum = [1,2,3,4,5,8,9,10,11,200,201,202]
lGrouped = []
start = 0
for x in range(0,len(lSequenceOfNum)):
if x != len(lSequenceOfNum)-1:
if(lSequenceOfNum[x+1] - lSequenceOfNum[x]) > 1:
lGrouped.append([lSequenceOfNum[start],lSequenceOfNum[x]])
start = x+1
else:
lGrouped.append([lSequenceOfNum[start],lSequenceOfNum[x]])
print lGrouped
Nó là tốt nhất tôi có thể làm. Có cách nào "pythonic" hơn để làm điều này? Cảm ơn ..
Hãy suy nghĩ về nó trong điều kiện của nơi nhảy là thay vì nơi phạm vi là. Bạn có thể lưu trữ các kết quả trong một mảng đơn giản của ints trong đó mỗi mục là một chỉ mục tương ứng với một bước nhảy trong mảng ban đầu. Tôi nghĩ rằng điều này đơn giản hơn ... và về cơ hội, điều này sẽ có thể sử dụng lại hoặc mã thư viện, bạn có thể đóng gói tất cả những điều đó trong các hoạt động của một lớp. – djechlin
Tôi khá chắc chắn đây là một bản sao mặc dù tôi không thể tìm kiếm nó ngay bây giờ. – jamylak