相关疑难解决方法(0)

识别列表中的连续数字组

我想在列表中标识连续数字组,以便:

myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])
Run Code Online (Sandbox Code Playgroud)

返回:

[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)

并且想知道最好的方法是什么(特别是如果在Python中有内置的东西).

编辑:注意我原本忘了提到个别数字应该作为单独的数字返回,而不是范围.

python list range continuous

81
推荐指数
6
解决办法
4万
查看次数

在python中将整数列表转换为范围

python中是否存在可以将增加的整数列表转换为范围列表的内容

例如,给定{0,1,2,3,4,7,8,9,11}我想得到{{0,4},{7,9},{11,11}}.

我可以写一个程序来做这个,但想知道python中是否有内置函数

python integer list range

31
推荐指数
3
解决办法
2万
查看次数

在python中查找列表中两个整数之间的最大增量

我有一个整数列表,即:

values = [55, 55, 56, 57, 57, 57, 57, 62, 63, 64, 79, 80]
Run Code Online (Sandbox Code Playgroud)

我试图找到两个连续数字之间的最大差异.在这种情况下,从64-> 79将是15.数字可以是负数或正数,增加或减少或两者兼而有之.重要的是我需要找到两个连续数字之间的最大增量.

最快的方法是什么?这些列表可以包含数百到数千个整数.

编辑:这是我现在的代码:

    prev_value = values[0]
    largest_delta = 0

    for value in values:
            delta = value - prev_value
            if delta > largest_delta:
                    largest_delta = delta
            prev_value = value

    return largest_delta
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?这需要一段时间.

python

13
推荐指数
1
解决办法
5802
查看次数

Python - 使用列表推导查找增量编号序列

我在列表中有一系列数字,我正在寻找一个优雅的解决方案,最好是列表理解,以获得单个序列(包括单个值).我已经解决了这个小问题,但它并不是非常pythonic.

以下列表定义了输入序列:

input = [1, 2, 3, 4, 8, 10, 11, 12, 17]
Run Code Online (Sandbox Code Playgroud)

期望的输出应该是:

output = [
  [1, 2, 3, 4],
  [8],
  [10, 11, 12],
  [17],
]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list

12
推荐指数
2
解决办法
1256
查看次数

按连续顺序排列的组列表

我有一个整数列表......

[1,2,3,4,5,8,9,10,11,200,201,202]
Run Code Online (Sandbox Code Playgroud)

我想将它们分组到一个列表列表中,其中每个子列表包含其序列尚未被破坏的整数.像这样...

[[1,5],[8,11],[200,202]]
Run Code Online (Sandbox Code Playgroud)

我有一个相当笨重的工作......

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
Run Code Online (Sandbox Code Playgroud)

这是我能做的最好的事情.是否有更"pythonic"的方式来做到这一点?谢谢..

python

11
推荐指数
2
解决办法
2618
查看次数

标签 统计

python ×5

list ×3

range ×2

continuous ×1

integer ×1

list-comprehension ×1