如何转换字符串分开进入数组与Python?



我是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))