我有这个数组:
[1,2,3,4]
并且我想要除了单个元素之外的所有子数组,在这种情况下:
[1,2],[1,2,3],[1,2,3,4],[2,3],[2,3,4],[3,4].
所以我实现了这段代码:
def nSub(nums:list):
"""
type nums: list
"""
l_nums = len(nums)
p = 2
for i in range(l_nums):
for j in range(p,l_nums+1):
print(nums[i:j])
p += 1
nSub([1,2,3,4])
但是虽然它有效,但也许还有其他方法可以实现这一点,所以我有一个问题:有没有pythonic的方法来做到这一点?任何帮助将不胜感激。
答案 0 :(得分:1)
简单的列表理解应该可以完成这项工作:
arr = [1,2,3,4]
[arr[n1:n2]
for n1 in range(0, len(arr) + 1)
for n2 in range(n1 + 2, len(arr) + 1)]
输出:
[[1, 2], [1, 2, 3], [1, 2, 3, 4], [2, 3], [2, 3, 4], [3, 4]]