Python 分析具有多个分隔符的字符串
我有一个文件列表:Python 分析具有多个分隔符的字符串,python,python-2.7,parsing,Python,Python 2.7,Parsing,我有一个文件列表: my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt'] 我如何一次解析所有这些数据以获得每个数据中的第二个数字(第二个“u”之后,“.”之前的数字)?这将使您获得这些数字: import re def get_numbers(list): out = [] for l in list:
my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
我如何一次解析所有这些数据以获得每个数据中的第二个数字(第二个“u”之后,“.”之前的数字)?这将使您获得这些数字:
import re
def get_numbers(list):
out = []
for l in list:
matched = re.match(r'\w+_\d+_(\d+)\.txt', l)
if matched:
out.append(matched.group(1))
return(out)
my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt']
numbers = get_numbers(my_list)
这将为您提供数字:
import re
def get_numbers(list):
out = []
for l in list:
matched = re.match(r'\w+_\d+_(\d+)\.txt', l)
if matched:
out.append(matched.group(1))
return(out)
my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt']
numbers = get_numbers(my_list)
我会列出一份理解力的清单
>>> my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
>>> [i[i.rfind('_') + 1:i.rfind('.')] for i in my_list]
['23', '133', '9']
当然,如果需要它们作为整数,您可以在理解中应用
int()
>>> my_list = ['identification_2442942_23.txt', 'identification_9353289532_133.txt', 'identification_1321_9.txt']
>>> [i[i.rfind('_') + 1:i.rfind('.')] for i in my_list]
['23', '133', '9']
当然,如果你需要它们作为整数,你可以在理解中应用int()
。这更像是一个python,更优雅,所以我会投票支持它。我提出了一个基本问题,让人更容易理解,但这得到了风格点。@ShawnMehan谢谢,我发现我根本无法理解足够的内容,它们既简洁又可读。我认为它们可能是Python语言中我最喜欢的东西。这更像Python语言,更优雅,所以我会投票支持它。我提出了一个基本问题,让人更容易理解,但这得到了风格点。@ShawnMehan谢谢,我发现我根本无法理解足够的内容,它们既简洁又可读。我想它们可能是我最喜欢的Python语言。