2016-12-04 2 views
0

ich eine Textdatei haben, sagen:Lesen Sie den Text aus einer Datei und sortieren nach Zahlen

cat 2  
dog 4 
bird 20 
animal 3 

Ich möchte diese Datei lesen und wie diese sortiert werden sollen (nach Zahlen):

cat 2 
animal 3 
dog 4    
bird 20 

-Code versucht, so weit:

def txtsort(self, _, line): 
words = [] 
    for word in WORD_RE.findall(line): 
    words.append(word) 
words_ini = words[0] 
count_ini = np.array(words[1]) 
count_sort = np.sort(count_ini,axis = 0,kind='quikstart', order = None) 
+1

Und was passiert mit diesem Code? Wie gesagt, es ist kaputt, also wenn es nicht funktioniert, sollte es keine Überraschung geben. – jonrsharpe

+0

Korrigieren Sie Ihren Code so, dass 'words' die Wörter enthält, die Sie sortieren möchten. –

+0

Ich versuche das in mrjob zu tun. Gibt es eine Lösung dafür mit mrjob – bharath

Antwort

-1

Sie keine externen Bibliotheken für diese benötigen. Teilen Sie einfach jede Zeile auf und fügen Sie sie zu einer Liste hinzu, indem Sie das zweite Element als Zahl darstellen. Dann sortiere die Liste nach diesem Element.

with open('file.txt') as f: 
    result = [(a,int(b)) for line in f for a,b in line.split()] 

result.sort(key=lambda x: x[1]) 
+0

Ich würde gerne hören, was mit dieser Antwort falsch ist, um es einen Downvote verdienen. Dann kann ich es verbessern. – TigerhawkT3

2

Angenommen, Sie Wörter in einer Liste ähnlich zu haben:

words = [ 
    ('cat', 2), 
    ('dog', 4), 
    ('bird', 20), 
    ('animal', 3) 
] 

result = sorted(words, key=lambda x: x[1]) 
Verwandte Themen