首页 > 解决方案 > 如何在python中有效地根据多个条件拆分文本?

问题描述

嘿,所以我期待用户以这种方式输入:

1 = 20,
2 = 14,
3-5 = 10

现在我想要的是一个字典:

{1:20,
2:14,
3:10,
4:10,
5:10}

我想将用户输入拆分为,and=所以我做了:

for i in points.replace('\n','').split(','):
  yield i.split("=")

我得到了包含 2 个元素的列表:

['1 ', ' 20']
['2 ', ' 14']
['3-5 ', ' 10']

所有这一切都很顺利,但我被击中的是第三个列表(['3-5 ', ' 10']),我希望将其转换为一个范围,这样我就可以获得我想要的最终 dict,我可以找出一些 hacky 方式,但我不认为我是遵循我在这里尝试实现的最佳方法。你能建议我一个更好、更有效的方法吗?

谢谢 :)

标签: pythonpython-3.xsplit

解决方案


你可以参考这段代码

#===== if you want, you can do this too.
points="1 = 20,\n2 = 14,\n3-5 = 10"
x=[]
for i in points.split(','):
    x.append(i.strip("\n").split("="))
#=====
x=[['1 ', ' 20'],
['2 ', ' 14'],
['3-5 ', ' 10']]
dic1={}
for i in x:
    if "-" in i[0]:
        i2=i[0].split("-")
        for j in range(int(i2[0]), int(i2[1])+1):
            dic1.update({j:i[1]})
    else:
        dic1.update({i[0]:i[1]})
print(dic1)

推荐阅读