相关疑难解决方法(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拆分列表基于序列中缺少的数字

我正在寻找最基本的方法,根据序列中缺少的数字将数字列表拆分成较小的列表.例如,如果初始列表是:

seq1 = [1, 2, 3, 4, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

该函数将产生:

[[1, 2, 3, 4], [6, 7, 8, 9, 10]]
Run Code Online (Sandbox Code Playgroud)

要么

seq2 = [1, 2, 4, 5, 6, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

会导致:

[[1, 2], [4, 5, 6], [8, 9, 10]]
Run Code Online (Sandbox Code Playgroud)

python list sequence

19
推荐指数
3
解决办法
6362
查看次数

如何做一个反"范围",即根据一组数字创建一个紧凑的范围?

Python有一个range方法,它允许以下内容:

>>> range(1, 6)
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是相反的:拿一个数字列表,并返回开始和结束.

>>> magic([1, 2, 3, 4, 5])
[1, 5] # note: 5, not 6; this differs from `range()`
Run Code Online (Sandbox Code Playgroud)

这对于上面的示例来说很容易做到,但是是否可以允许间隙或多个范围,以类似PCRE的字符串格式返回范围?像这样的东西:

>>> magic([1, 2, 4, 5])
['1-2', '4-5']
>>> magic([1, 2, 3, 4, 5])
['1-5']
Run Code Online (Sandbox Code Playgroud)

编辑:我正在寻找一个Python解决方案,但我也欢迎其他语言的工作示例.它更多的是要找出一个优雅,高效的算法.奖金问题:是否有任何编程语言具有内置方法?

python pcre numbers range

6
推荐指数
2
解决办法
1143
查看次数

标签 统计

python ×4

list ×3

range ×3

continuous ×1

integer ×1

numbers ×1

pcre ×1

sequence ×1