我有一个文本文件,里面充满了符号和数字,全都是字符串。我正在尝试将其移到另一个列表中,在该列表中索引编号之后进行排序。但是我是python的新手,并且不太确定如何做到这一点。我在“ a”中添加了元组,并将int与字符串分开。我现在想对整数进行排序。
sortedlist = []
with open("m_scrambled.txt") as file:
for line in file:
a = (int(line.partition(" ")[0]),line.partition(" ")[2])
b=sorted(a)
print(a)
我通过尝试对“ a”进行排序而遇到的错误。
'<' not supported between instances of 'str' and 'int'
文件摘要,希望您能帮助我变得更聪明!
150
139 ,W@@@@@@@@@####*;;####@@@W@@@@##Wii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,,,,,,,,:::
140 .xWW@@W@@@@##W+;;;;+W@@WWWWW@@##Wi;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;;::
141 `+@@@@@@@####Wii;;;iW###@@@@@###ni;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,,...``
138 `,;*n@@@@@@########i:;x###@@@@######@#;iii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,..```...
146 .#xxxMWWWW@#######@n#++#n@#######@@WMMWWWWz;;;;;;;;;;;;;;;;;;;;;;:,.``
137 `:+zxMMMMMMMMMMWW@@##@:,,x##############W*iii;;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,..```
147 ``.+W@@@@@@@####Wxnz++****++znxW####@@@@@#@@z*iiii;;;;;;ii;;;;:,.``
142 `````.iM############Wi;;;;*W############M+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:,,...``
136 `;+zzznnxnnnnnnnxxxxxMMMxxxMMMMMMMMMMWWWWWWWWWMxz+i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,,..``
148 ``.,;nW@@@@@@@@Wxz+*iii;;;;iii**+#nMW@@@@@@@@@x+*ii;;:::,,,..``
149 ```.:;+zzzz#+i:,.```` ``````````..,:;i+##zz#+;:..``
135 `*##zzzzzzzzzzznnxxMxxxxnnnnxxxxxxxxxMMxxxMMMMMMMMMMx#i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::,,...``
134 `*+####zzzz#zzzznnnxxxxxnnnnnnnxxxxxxxxxxxxxxxMxxxxxMMMx#i;;;;i;;i;i;;;;;;;;;;;;::::,,,..````
132 :+#+####zzz#zzznzzzzzzzz#####zzznnnnnnnzzznnnnnnnxxxxxxxxxxxi`````````````````
145 ``.,,,,:*xxMW@@@@#########niii*x@#######@@WMMW@@M+;;;;;;;;;;;;;;;;;;;;;;;;;;:,..`
133 `i+#####zzz##zznnnnnznzzzzzzzznnnnnnnnxxnnnnxxxxxxxxxxxxxMxi:::::::::::::::,,,,,....`````
130 :+++####################zzzzzzzzznnnnzznnnzzzznnnzznnnnnnnnnxxx,
131 `*+#+#######zzzzz####zz#####z##zzzzzzzzzzzzznznnnnnnnnnxnnnnxxi
143 `..,::;;;;in##############@*;;;;+@#############@ni;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,,.```
128 ,****++++++++++++#######zzznnnnzzzzznnxxxnnnnnzznnnn#zxnzzznWWWWMi
127 ;i****++++++*++#z###zzzzz#zz##zzzzzzzzznnxnnnzzzznnxn#xnzznMWMxxxz`
答案 0 :(得分:2)
我已经使用正则表达式在每一行的开头查找数字,并将其用作python排序的方法
proxy_cache_valid
如果您不想使用正则表达式,则下面将使用一种不太健壮的方法,该方法只是将行按空格字符分开,并使用第一项作为数字进行排序
import re
def sortByLeadingNumber(line):
matches = re.match("^[\d]+", line)[0]
return int(matches)
with open('scrambled_file.txt') as file:
sortedLines = list(sorted(file.readlines(),key=sortByLeadingNumber))
print(sortedLines)
然后将其用作def sortByLeadingNumberNoRe(line):
return int(line.split()[0])
的{{1}}参数。