Python 用逗号分隔字符串和其他值。。。。!
我正在处理一个项目,在这个项目中,将有一个变量包含任何数据类型,这些数据类型用逗号分隔 我需要分离所有这些东西,还需要定义它是哪种类型 例如: data=“你好,你好”,123,10.04 我使用split()函数来分隔,但它甚至在字符串“Hello,Hey”中分隔逗号 我不需要这样,我只需要,用逗号分隔值,而不是用字符串中的逗号 我杀死了我的大脑,但这对我来说仍然是个问题。因为我是初学者Python 用逗号分隔字符串和其他值。。。。!,python,split,Python,Split,我正在处理一个项目,在这个项目中,将有一个变量包含任何数据类型,这些数据类型用逗号分隔 我需要分离所有这些东西,还需要定义它是哪种类型 例如: data=“你好,你好”,123,10.04 我使用split()函数来分隔,但它甚至在字符串“Hello,Hey”中分隔逗号 我不需要这样,我只需要,用逗号分隔值,而不是用字符串中的逗号 我杀死了我的大脑,但这对我来说仍然是个问题。因为我是初学者 提前感谢我很难理解您的问题-似乎您有一个字符串,其中包含数据,用逗号分隔: data='"Hello, H
提前感谢我很难理解您的问题-似乎您有一个字符串,其中包含数据,用逗号分隔:
data='"Hello, Hey",123,10.04'
您可以使用根据引号对其进行拆分
>>> import shlex
>>> s = shlex.shlex(data)
>>> s.whitespace = ','
>>> s.wordchars += '.'
>>> print(list(s))
['"Hello, Hey"', '123', '10.04']
您可以像这样使用
re
模块:
[m.group(1) or m.group(2) for m in re.finditer(r'"([^"]*)",?|([^,]*),?', '"Hello, Hey",123,10.04')]
您可以使用
re.split
对逗号前的双引号或逗号后的数字组合进行拆分
import re
data='"Hello, Hey",123,10.04'
re.split(r'(?<="),|,(?=\d)', data)
['"Hello, Hey"', '123', '10.04']
重新导入
数据='“你好”,123,10.04'
re.split(r’(?您可以将re.findall
与regex模式一起使用“[^”]+”|[^,]+
:
import re
print(re.findall(r'"[^"]+"|[^,]+', '"Hello, Hey",123,10.04'))
这将产生:
['"Hello, Hey"', '123', '10.04']
你在使用CSV文件吗?考虑把你的数据存储在一个列表中,而不是一个字符串。不清楚你在问什么。你的代码是否需要接受数据作为CSV字符串?如果不是,那么改变你的数据模型。如果你必须处理这样的CSV数据,研究正则表达式。好一个!没有想到使用SLLEX。