如何从字符串列表中返回一组尾随数字?
mylist = ['kys_q1a2','kys_q3a20','kys_q2889b244','sonyps3_q92c288888']
预期结果:
[2, 20, 244, 288888]
我尝试失败:
for item in mylist:
print item[-1]
上下文
列表中的每个项目代表问题名称,由2部分组成:
我试图展示他们可以展示的各种方式。
答案 0 :(得分:5)
您可以使用正则表达式:
>>> import re
>>> r = re.compile(r'\d+$')
>>> [int(m.group()) for m in (r.search(item) for item in mylist) if m]
[2, 20, 244, 288888]
答案 1 :(得分:1)
您可以使用正则表达式匹配尾随数字:
>>> mylist = ['kys_q1a2','kys_q3a20','kys_q2889b244','sonyps3_q92c288888']
>>> [int(re.search(r'\d+$', el).group(0)) for el in mylist]
[2, 20, 244, 288888]
答案 2 :(得分:1)
>>> [ int(re.findall('(\d+$)', x)[0]) for x in mylist ]
[2, 20, 244, 288888]
>>>