如何将输入分隔的字符串转换为 Python 的数组?
How to convert string separate by enter to array with 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'>
它return这个:
['world']
它不包括 "hello"
。
如果像您在评论中写的那样用换行符分隔文本,您可以使用此方法:
string = "Hello\nWorld"
arr = string .split('\n')
print(arr)
更新:基于问题中关于如何生成字符串的更新:
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 = "Hello\nWorld"
array = string.splitlines()
print(array)
试试这个:
string = "Hello\nWorld"
arr = string.splitlines()
print(arr)
for i in arr:
print(type(i))
我是 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'>
它return这个:
['world']
它不包括 "hello"
。
如果像您在评论中写的那样用换行符分隔文本,您可以使用此方法:
string = "Hello\nWorld"
arr = string .split('\n')
print(arr)
更新:基于问题中关于如何生成字符串的更新:
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 = "Hello\nWorld"
array = string.splitlines()
print(array)
试试这个:
string = "Hello\nWorld"
arr = string.splitlines()
print(arr)
for i in arr:
print(type(i))