我是Python的新手。我想把字符串转换成数组。
我的字符串来自:
<Country>
<number no="11" info="date">
<detail name="a1" class="11a" />
<string name="hello" />
<string name="world" />
</detail>
<detail name="a2" class="1a2" />
<string name="hello" />
<string name="world" />
</detail>
</number>
<Country>
代码XML = ET.parse(File)
for name in XML.findall('.//detail [@class="11a"]/'):
detname = name.get('name')
print(detname)
detname
的输出如下:
hello
world
我的期望是["hello","world"]
我试过了:
arr = detname.split()
print(arr)
我试图打印字符串的类型,像这样<class 'str'> <class 'str'>
返回如下:
['world']
不包含"hello"
Update:基于问题中的更新,字符串是如何生成的:
for name in XML.findall('.//detail [@class="11a"]/'):
detname = name.get('name')
print(detname)
detname
基本上在这里代表每个迭代中的单个名称,你打印它们,这样你就得到了每个新行
如果您的需求是创建一个包含这些名称的列表,那么创建一个列表对象并将单个名称附加到列表中,如:
names = []
for name in XML.findall('.//detail [@class="11a"]/'):
detname = name.get('name')
names.append(detname)
print(names)
此外,它可以在一行中完成,并使用列表推导式:
names = [name.get() for name in XML.findall('.//detail [@class="11a"]/')]
print(names)
您的字符串由新的行字符分隔。
使用splitlines()
将它们分割成列表:
string = "HellonWorld"
array = string.splitlines()
print(array)
如果文本用换行符分隔,就像你在注释中写的那样,你可以使用:
string = "HellonWorld"
arr = string .split('n')
print(arr)
试试这个:
string = "HellonWorld"
arr = string.splitlines()
print(arr)
for i in arr:
print(type(i))