【发布时间】:2020-01-08 18:46:29
【问题描述】:
我正在尝试编写一个函数,它将一串间隔作为输入,例如 "0-0,4-8,20-21,43-45" 以产生每个范围内的所有数字,意思是:[0, 4, 5, 6, 7, 8, 20, 21, 43, 44, 45]
练习需要使用生成器来完成。我设法通过生成器解析输入,但我不能为填充数字做同样的事情。我正在尝试 int() 每个数字,以便我可以利用 range() 生成边缘内的所有数字。
这是我的概念代码 - 如何在每个区间内生成数字?
def parse_ranges(arg):
arg = arg.split(",")
parsed= (line.split("-") for line in arg)
#Trying to parse each character to int to use range()
intervals= (int(i) for i in number for number in parsed)
# Even if I had the characters parsed to int, I still don't know how to produce the range
ranges = (range(interval[0],interval[1]) interval for interval in intervals)
return ranges
print(list(parse_ranges("0-0,4-8,20-21,43-45")))
【问题讨论】:
标签: python python-3.x generator