gpt4 book ai didi

python - 给定一堆数字范围,获取这些范围内的所有数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:26:28 31 4
gpt4 key购买 nike

在 Python 中,您可以通过调用 range(x,y) 来获取范围内的数字。但是给定两个范围,例如 5-1510-20,您如何获得所有数字 5-20 而没有重复?这些范围也可能是不相交的。

我可以连接所有结果,然后对列表进行唯一化,但这是最快的解决方案吗?

最佳答案

>>> a = range(5, 15)
>>> b = range(10, 20)
>>> print sorted(set(a + b))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

或者,如果您想要将列表更一般地扩展到它们的元素以包含在集合中:

>>> list_of_lists = [a, b]
>>> print sorted(set(elem for l in list_of_lists for elem in l))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

我找到了一种将所有内容组合成一行的方法:

>>> list_of_lists = [a, b]
>>> print set.union(*map(set, list_of_lists))

是否需要排序?这只是说明性的,但我没有看到集合必须按排序顺序输出:

>>> x = set(range(3))
>>> x
set([0, 1, 2])
>>> x.add(-1)
>>> x
set([0, 1, 2, -1])

关于python - 给定一堆数字范围,获取这些范围内的所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643747/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com