我在一个字符串中拆分,该字符串遍历一个具有值的数组,此拆分必须包含以下规则:
脚本
array = [
'srv1 #s',
'srv2;192.168.9.1'
]
result = []
for x in array:
outfinally = [line.split(';')[0] and line.split()[0] for line in x.splitlines() if line and line[0].isalpha()]
for srv in outfinally:
if srv != None:
result.append(srv)
for i in result:
print(i)
输出
srv1
srv2;192.168.9.1
所需输出
srv1
srv2
问题就在这里:
line.split(';')[0] and line.split()[0]
你的第二个条件在空白处分裂。因此,除非输入的开头有分号(在这种情况下得到的是空字符串),否则它总是返回空格分割版本。你知道吗
您可能希望将两个拆分链接起来:
line.split(';')[0].split()[0]
要查看问题中的代码在做什么,请查看条件表达式在几种不同情况下的作用:
您可以使用两个不同的分隔符进行两次拆分:
result
变成:这应在任何特殊章程上进行拆分,并将拆分的第一部分附加到新列表中:
输出:
相关问题 更多 >
编程相关推荐