繁体   English   中英

如何使用 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的detname是这样的:

hello
world

我期望它变成["hello","world"]

我试过这样:

arr = detname.split()
print(arr)

我正在尝试像这样打印字符串的类型<class 'str'> <class 'str'>

它返回这个:

['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基本上在这里代表每次迭代中的各个名称,然后打印它们,以便在新行中获取每个名称。

如果您的要求是创建一个包含这些名称的列表,则创建一个列表 object 和 append 到列表中的各个名称:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM