import re
pattern = re.compile('Dnext_(\d+)\[(\d+)\]')
with open('input.txt') as f:
print sorted(f, key=lambda x: map(int, pattern.search(x).groups()))
with open('testfile') as f:
l=f.readline()
a=l.split()
b=sorted(a)
print "original data is is ",l
print "Original data with comma is ",a
print "sorted data is ",b
我发布答案时,问题已更改。下面的答案并不完美,但可能对您有所帮助:
with open('testfile') as f:
l=f.readlines()
#=l.split()
b=sorted(l)
print "original data is is ",l
#print "Original data with comma is ",a
print "sorted data is ",b
for i in b:
print i
其思想是使用^{} 对数据进行排序,指定
key
lambda
函数,该函数使用regular expression提取Dnext_
之后和括号内的数字:印刷品:
Dnext_(\d+)\[(\d+)\]
正则表达式使用捕获组来提取Dnext_
后面的数字和括号中的数字:map(int, ... )
有助于将提取的数字转换为python整数(请参见^{希望有帮助。你知道吗
看看这是否有帮助。。结果应为: ['Dnext\u 0[0]'、'Dnext\u 0[11]'、'Dnext\u 0[128]'、'Dnext\u 0[1]'、'Dnext\u 1[0]']
我发布答案时,问题已更改。下面的答案并不完美,但可能对您有所帮助:
创建一个返回元组的函数,其中包含要按其排序的行,并将其用作键。你知道吗
相关问题 更多 >
编程相关推荐