在python中向按顺序间隔的列表添加值?
我对Python相当陌生,对如何将以下代码从Matlab表示为Python感到困惑:在python中向按顺序间隔的列表添加值?,python,list,range,Python,List,Range,我对Python相当陌生,对如何将以下代码从Matlab表示为Python感到困惑: P = [2:35,50,100,200] 在Matlab中,这将显示:p=[2,3,…,35,50100200];然而,我似乎不知道如何像在Matlab中那样轻松地将值添加到具有顺序编号的a列表中。任何建议都很好。谢谢 Vanilla python没有专门的语法用于此。。。如果使用列表,则需要两个步骤: lst = list(range(2, 36)) # for python2.x, you don't
P = [2:35,50,100,200]
在Matlab中,这将显示:p=[2,3,…,35,50100200];然而,我似乎不知道如何像在Matlab中那样轻松地将值添加到具有顺序编号的a列表中。任何建议都很好。谢谢 Vanilla python没有专门的语法用于此。。。如果使用列表,则需要两个步骤:
lst = list(range(2, 36)) # for python2.x, you don't need `list(...)`
lst.extend([50, 100, 200])
如果您有“出血边缘”(python3.5),请执行以下操作:
如果您使用的是numpy
,则可以使用r\u
索引技巧(看起来有点类似于matlab版本):
如果您有幸使用Python3.5,您可以将(from)与
范围一起使用:
>>> [*range(2, 36), 50, 100, 200]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50, 100, 200]
请注意,range
生成的最后一个值比end
参数小一个。您是否尝试添加一个值,然后对列表进行排序,以便保留其顺序编号我不熟悉matlab@FujiApple除非你不能,因为整数是不可数的,所以它会失败…@JonClements,真是太傻了me@JonClements--谢谢。我想它确实有这样的语法(有点):-)np.r\u2:36,50,100,200]
?@DSM——我想里面可能有东西。我会更新。范围(2,36)
是一个列表。我想您不必做列表(范围(2,36))
@Trying2Learn:range
只返回Python 2中的列表。在现代Python中,它返回一个特殊的范围
对象。
>>> import numpy as np
>>> np.r_[2:36, 100, 200, 500]
array([ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 100, 200, 500])
>>> [*range(2, 36), 50, 100, 200]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50, 100, 200]