Python:将字符串拆分为元素并将它们添加到列表中
我有一个只有一个元素的列表,它本身就是一个元素列表Python:将字符串拆分为元素并将它们添加到列表中,python,Python,我有一个只有一个元素的列表,它本身就是一个元素列表 str = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"' 现在,我希望该字符串中的每个名字都包含在另一个列表中。为此,我知道我必须单独拆分每个名称,然后将它们附加到所需
str = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
现在,我希望该字符串中的每个名字都包含在另一个列表中。为此,我知道我必须单独拆分每个名称,然后将它们附加到所需的列表中。下面是我为同样的目的编写的代码:
str = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
li = str.split()
c = li[0]
ip = []
start = c.find('"')
final = c.find('"', start+1)
def iter(start, final):
e = c[start+1:final]
ip.append(e)
nstart = c.find('"', final+1)
nfinal = c.find('"', nstart+1)
if(nstart == -1 or nfinal == -1):
print ip
else:
iter(nstart, nfinal)
然而,我没有得到任何输出ip'是我打算单独存储所有名称的列表。我的代码似乎有什么问题?首先,调用
str
是不好的,因为str
是python中的内置函数
第二,您可以通过以下方式完成:
in_list_string = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
out_list= [element.strip('"') for element in in_list_string.split(',')]
首先,调用
str
是不好的,因为str
是python中的内置函数
第二,您可以通过以下方式完成:
in_list_string = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
out_list= [element.strip('"') for element in in_list_string.split(',')]
您的代码比需要的复杂得多。您可以使用注释,或者执行以下操作:
foo = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
output = foo.replace('"','').split(",")
您的代码比需要的复杂得多。您可以使用注释,或者执行以下操作:
foo = '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
output = foo.replace('"','').split(",")
用于csv数据:
>>> import csv
>>> from StringIO import StringIO
>>> dont_call_me_str='"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
>>> list(csv.reader(StringIO(dont_call_me_str)))
[['MARY', 'PATRICIA', 'LINDA', 'BARBARA', 'ELIZABETH', 'JENNIFER', 'MARIA', 'SUSAN', 'MARGARET', 'DOROTHY', 'LISA', 'NANCY', 'KAREN', 'BETTY', 'HELEN', 'SANDRA', 'DONNA', 'CAROL']]
用于csv数据:
>>> import csv
>>> from StringIO import StringIO
>>> dont_call_me_str='"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL"'
>>> list(csv.reader(StringIO(dont_call_me_str)))
[['MARY', 'PATRICIA', 'LINDA', 'BARBARA', 'ELIZABETH', 'JENNIFER', 'MARIA', 'SUSAN', 'MARGARET', 'DOROTHY', 'LISA', 'NANCY', 'KAREN', 'BETTY', 'HELEN', 'SANDRA', 'DONNA', 'CAROL']]
namelist=nameStr[1:-1]。拆分(“,”)
?此字符串来自何处?这看起来很像CSV文件的一行。我从正在使用的文件中获取了该字符串。问题是,如果它是CSV文件,则有一个完整的内置模块用于读取它们。namelist=nameStr[1:-1]。拆分(“,”)
?该字符串来自何处?这看起来很像CSV文件的一行。我从正在处理的文件中获得了该字符串。关键是,如果它是CSV文件,则有一个完整的内置模块用于读取它们。