我正在努力提高我的能力并学习发电机管道。我设法解决了一些问题,但我觉得我的理解存在基本差距。
例如:我尝试构建一个返回某个范围内的所有数字的函数。范围以几个范围的字符串形式给出。收到的字符串的示例:"1-2,4-4,8-10"
。因此,第一个生成器应该返回一个 int 对的列表:[1, 2] [4, 4] [8, 10]
第二个生成器应该使用范围函数中的1st_gen[0]
作为开始和停止,并返回范围内的所有数字:1st_gen[1]
1 2 4 8 9 10
这是我的代码,我很乐意提供提高我的技能的提示:
def parse_ranges(range_string):
temp_list = (c.replace("-", ",") for c in list(range_string.split(",")))
generator2 = (i for start, stop in temp_list for i in range(int(start), int(stop) + 1))
for i in generator2:
print(i)
print(parse_ranges("1-2,4-4,8-10"))
print(parse_ranges("0-0,4-8,20-21,43-45"))
慕婉清6462132
慕少森
相关分类