python - 如何通过输入将字符串单独转换为使用Python的数组?
Posted
技术标签:
【中文标题】python - 如何通过输入将字符串单独转换为使用Python的数组?【英文标题】:How to convert string separate by enter to array with Python? 【发布时间】:2021-06-07 05:28:14 【问题描述】:我是 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"
。
【问题讨论】:
尝试在拆分前打印字符串 【参考方案1】:更新:基于问题中的更新作为字符串的生成方式:
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)
【讨论】:
我试过了,但它仍然只返回 ['World'] @Krishna @Joe,你能添加完整的代码吗?看起来您将输入作为多行字符串,这可能无法按原样工作。 我更新了我如何得到字符串的问题。谢谢【参考方案2】:如果文本像您在评论中写的那样由换行符分隔,您可以使用:
string = "Hello\nWorld"
arr = string .split('\n')
print(arr)
【讨论】:
我试过了,但它仍然只返回 ['World'] @Felix 字符串到底来自哪里,"Hello"\n"World" 无效?【参考方案3】:试试这个:
string = "Hello\nWorld"
arr = string.splitlines()
print(arr)
for i in arr:
print(type(i))
【讨论】:
以上是关于python - 如何通过输入将字符串单独转换为使用Python的数组?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python pandas 将具有逗号值的字符串转换为多层索引的单独行