当前位置:  开发笔记 > 编程语言 > 正文

如何在一个范围内添加非连续数字?

如何解决《如何在一个范围内添加非连续数字?》经验,为你挑选了3个好方法。

我试图遍历范围(750,765)并添加非连续数字769,770,774.如果我尝试在范围函数之后添加数字,它将返回范围列表,然后是单个数字:

>>> for x in range(750, 765), 769, 770, 774: print x
... 
[750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764]
769
770
774

如何将所有数字都放在一个列表中?



1> Jason Coon..:

使用内置+运算符将非序列号附加到范围.

for x in range(750, 765) + [769, 770, 774]: print x


添加3个号码?这几乎不会影响性能.导入itertools需要更多时间.如果这是在数千个范围的循环中完成的,那么是的,也许您应该考虑链方法.
过早优化还为时过早.

2> Devin Jeanpi..:

有两种方法可以做到这一点.

>>> for x in range(5, 7) + [8, 9]: print x
...
5
6
8
9
>>> import itertools
>>> for x in itertools.chain(xrange(5, 7), [8, 9]): print x
...
5
6
8
9

itertools.chain()是优越的,因为它允许您使用任意迭代,而不仅仅是列表和列表.它也更高效,不需要列表复制.它允许你使用xrange,循环时你应该使用它.



3> Jarret Hardi..:

此页面上的其他答案将为您提供良好的服务.只是一个简单的说明,在Python3.0中,range是一个迭代器(就像xrange在Python2.x中... xrange在3.0中消失了).如果您尝试在Python 3.0中执行此操作,请确保在执行添加之前从范围迭代器创建列表:

for x in list(range(750, 765)) + [769, 770, 774]: print(x)

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有