在Python中分割资料

时间:2019-11-21 12:37:28

标签: python list

我不知道如何分割字符串。

a = ['hostname1-Link1-2582',
'hostname2_1/3/10',
'hostname100',
'hostanme250_1']

以上是我的数据。我想捕获列表项在_或-之后是否包含连续的数字格式。

在这种情况下,我想从hostname1-Link1-2582 this捕获2582,从hostanme250_1 this捕获1。

第二个列表项和第三个列表项没有这种格式,所以我想忽略它们。

所以我希望输出应该像

输出= [2581,NA,NA,1]

任何人都可以帮助我拆分这些数据并将其存储到列表中。

我尝试过如下操作:

 for i in a:
   i.split('-')[2]

2 个答案:

答案 0 :(得分:2)

这是使用正则表达式的一种方法。

例如:

import re
a = ['hostname1-Link1-2582',
'hostname2_1/3/10',
'hostname100',
'hostanme250_1']

result = []
for i in a:
    m = re.search(r"(_|\-)(\d+)$", i)
    if m:
        result.append(m.group(2))
    else:
        result.append("NA")
print(result)

输出:

['2582', 'NA', 'NA', '1']

答案 1 :(得分:1)

这里是不使用正则表达式的解决方案。

output = list()

for elem in a:
    elem = elem.replace('_', '-')
    split = elem.split('-')
    last_word = split[-1]

    if last_word.isdigit():
        output.append(last_word)
    else:
        output.append('NA')

输出:

['2582', 'NA', 'NA', '1']