将典型的字符串范围表达式转换为的最Python方式是什么
'1-4,6'
进入列表
[1, 2, 3, 4, 6]
这是一个脑筋急转弯,我知道如何使用字符串操作和循环以健忘的方式做到这一点。
您可以直接执行此操作
l = list(range(1,5))+ [6]
将list()
应用于范围对象。
list(range(1,5)) + [6]
您的问题不是很清楚,因为这是一个非常普通的示例,但是肯定会产生您所要求的东西是:
range(1,5) + [6]
您可以使用以下功能:
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]