簡體   English   中英

有沒有辦法在python中設置整數范圍內的列表值

[英]Is there a way to set a list value in a range of integer in python

我想執行以下操作:

>>> [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。

@timgeb的答案很棒,但這會返回一個list ,默認情況下,range返回"an immutable sequence type" ,因此使用itertools.chain會給出一個與range()更密切相關的iterable

import itertools
itertools.chain(range(3), range(4,5))

哪個(一旦轉換為帶有list()list ,所以我們可以看到內容)將給出:

[0, 1, 2, 4]

或者你可以制作自己的generator

def joinRanges(r1, r2):
    for i in r1:
        yield i
    for i in r2:
        yield i

通過以下方式實現與以前相同的效果:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM