为了账号安全,请及时绑定邮箱和手机立即绑定

Python 3将范围转换为列表

Python 3将范围转换为列表

慕田峪7331174 2019-12-27 10:30:05
我正在尝试列出其中的数字1-1000。显然,这会令人烦恼,因此我试图创建一个包含范围的列表。在Python 2中,似乎:some_list = range(1,1000)本来可以用,但是在Python 3中,范围类似于xrangePython 2?谁能对此提供一些见识?
查看完整描述

4 回答

?
宝慕林7174908

TA贡献1条经验 获得超0个赞

my_list=[*range(1001)]


查看完整回答
反对 回复 2020-01-29
?
桃花长相依

TA贡献1860条经验 获得超8个赞

在Pythons <= 3.4中,您可以按照其他人的建议使用list(range(10)),以使列表超出范围(通常,任何可迭代的)。


在Python中3.5以解包概括引入的另一种替代方法是*在列表文字中使用[]:


>>> r = range(10)

>>> l = [*r]

>>> print(l)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

尽管这等效于list(r),但是它是字面语法,并且不涉及任何函数调用的事实确实使它执行得更快。如果您需要打高尔夫球,它的字符也更少:-)


查看完整回答
反对 回复 2019-12-27
?
浮云间

TA贡献1829条经验 获得超3个赞

Python3缺少直接获取范围列表的功能的原因是因为最初的Python3设计器在Python2中是新手。他只考虑了range()在for循环中使用函数,因此,该列表永远不需要扩展。实际上,很多时候我们确实需要使用该range()函数来生成列表并传递给函数。

因此,在这种情况下,与Python2相比,Python3不那么方便,因为:

  • 在Python2中,我们有xrange()and range();

  • 在Python3,我们range()list(range())

尽管如此,您仍然可以通过以下方式使用列表扩展:

[*range(N)]


查看完整回答
反对 回复 2019-12-27
  • 4 回答
  • 0 关注
  • 634 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信