如何从split函数中获取值?

时间:2015-10-06 12:14:09

标签: python

当我在下面运行此代码时。

x="abc=2015 and xyz=1806".split("=")
print x

我得到了这个:

['abc', '2015 and xyz', '1806']

但是,我希望输出为20151806

任何人都可以帮助我。

6 个答案:

答案 0 :(得分:1)

import re
print(' '.join(re.split('\D',"abc=2015 and xyz=1806")))

 2015         1806

或列表:

 print([int(x) for x in re.split('\D',"abc=2015 and xyz=1806") if x.isdigit()])

 [2015, 1806]

答案 1 :(得分:1)

如果可以选择,则无需加入或拆分。

>>> x="abc=2015 and xyz=1806"
>>> import re
>>> y = re.findall('\d+', x)
>>> print(y)
['2015', '1806']

答案 2 :(得分:1)

很多选项,如果你知道" and "是分隔符,那么另一个选项就是你可以先分开" and "

>>> x="abc=2015 and xyz=1806"
>>> [s.split('=')[1] for s in x.split(" and ")]
['2015', '1806']

或者将标签值保存在dict中并只打印值:

>>> d = dict(s.split('=') for s in x.split(" and "))
>>> d.values()
['1806', '2015']

答案 3 :(得分:0)

x="abc=2015 and xyz=1806"
print [i.split("=")[1] for i in x.split() if '=' in i]

输出:['2015', '1806']

您可以先拆分,然后检查=是否存在,然后按=拆分。

答案 4 :(得分:0)

string = "abc=2015 and xyz=1806"
x = [int(i.split("=")[1]) for i in string.split() if '=' in i]
print(x)

答案 5 :(得分:0)

import re

s='abc = 2015 and xyz = 1806'
r='[=\s*](\d+)'
for x in re.findall(r, s):
    print(x)