将范围表达式更改为列表的Python方法

问题描述 投票:0回答:2

将典型的字符串范围表达式转换为的最Python方式是什么

'1-4,6'

进入列表

[1, 2, 3, 4, 6]

这是一个脑筋急转弯,我知道如何使用字符串操作和循环以健忘的方式做到这一点。

python
2个回答
0
投票

您可以直接执行此操作

l = list(range(1,5))+ [6]


0
投票

list()应用于范围对象。

list(range(1,5)) + [6]

0
投票

您的问题不是很清楚,因为这是一个非常普通的示例,但是肯定会产生您所要求的东西是:

range(1,5) + [6]

0
投票

您可以使用以下功能:

def range_to_list(s):
    ranges = s.split(",")
    for i in ranges:
        if "-" in i:
            a, b = map(int, i.split("-"))
            yield from range(a, b + 1)
        else:
            yield int(i)

print(list(range_to_list('1-4,6')))

打印:

[1, 2, 3, 4, 6]
© www.soinside.com 2019 - 2024. All rights reserved.