Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在python中设置整数范围内的列表值_Python_Python 3.x - Fatal编程技术网

有没有办法在python中设置整数范围内的列表值

有没有办法在python中设置整数范围内的列表值,python,python-3.x,Python,Python 3.x,我要执行以下操作: >>> [0-2, 4] #case 1 [-2, 4] #I want the output to be [0, 1, 2, 4] 我知道我可以这样做: >>> list(range(3)) + [4] #case 2 [0, 1, 2, 4] 但我很好奇,有没有什么方法可以使用案例1方法(或类似的方法)获得相同的结果?我需要重写整数“-”运算符还是需要对列表执行任何操作 >>> [*range(0,3

我要执行以下操作:

>>> [0-2, 4]  #case 1
[-2, 4]     #I want the output to be [0, 1, 2, 4]
我知道我可以这样做:

>>> list(range(3)) + [4]   #case 2
[0, 1, 2, 4]
但我很好奇,有没有什么方法可以使用案例1方法(或类似的方法)获得相同的结果?我需要重写整数“-”运算符还是需要对列表执行任何操作

>>> [*range(0,3), 4]
[0, 1, 2, 4]
应该是最接近的。仅限Python 3。

的答案很好,但这将返回一个
列表,默认情况下,range返回一个
“不可变序列类型”
,因此使用
itertools.chain
将得到一个与
range()
更密切相关的
iterable

其中(使用
list()
转换为
列表
,以便我们可以查看内容)将给出:

[0, 1, 2, 4]

或者您也可以制作自己的
生成器

def joinRanges(r1, r2):
    for i in r1:
        yield i
    for i in r2:
        yield i
当使用以下命令调用时,达到与以前相同的效果:

joinRanges(range(3), range(4,5))

现在你有了一个范围和静态值的列表。走@我拒绝。事实上,我们不能在列表理解中使用带星号的表达式,这使得这个例子很无聊。这正是我所需要的,因为我尝试了[range(0,3),4],它将函数作为索引0返回。谢谢
joinRanges(range(3), range(4,5))