Es ist ein Herausforderungsrekord von 100 Sprachverarbeitungsklopfen 2015. Die Umgebung ist Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64-Bit). Klicken Sie hier, um eine Liste der vergangenen Schläge anzuzeigen (http://qiita.com/segavvy/items/fb50ba8097d59475f760).
hightemp.txt ist eine Datei, in der die Aufzeichnung der höchsten Temperatur in Japan im tabulatorgetrennten Format "Präfektur", "Punkt", "℃" und "Tag" gespeichert wird. Erstellen Sie ein Programm, das die folgende Verarbeitung ausführt, und führen Sie hightemp.txt als Eingabedatei aus. Führen Sie außerdem denselben Prozess mit einem UNIX-Befehl aus und überprüfen Sie das Ausführungsergebnis des Programms.
Suchen Sie den Typ der Zeichenfolge in der ersten Spalte (eine Reihe verschiedener Zeichenfolgen). Verwenden Sie zur Bestätigung die Befehle sort und uniq.
main.py
# coding: utf-8
fname = 'hightemp.txt'
with open(fname) as data_file:
set_ken = set()
for line in data_file:
cols = line.split('\t')
set_ken.add(cols[0])
for n in set_ken:
print(n)
Ausführungsergebnis 1
Präfektur Yamagata
Präfektur Wakayama
Präfektur Gifu
Präfektur Osaka
Präfektur Ehime
Saitama
Präfektur Aichi
Präfektur Kochi
Präfektur Gunma
Präfektur Chiba
Präfektur Yamanashi
Präfektur Shizuoka
Ausführungsergebnis 2
Präfektur Gifu
Präfektur Yamagata
Präfektur Shizuoka
Präfektur Aichi
Präfektur Osaka
Präfektur Kochi
Präfektur Gunma
Präfektur Chiba
Präfektur Yamanashi
Präfektur Ehime
Präfektur Wakayama
Saitama
Als ich es zweimal ausgeführt habe, hat sich die Reihenfolge geändert. Dies liegt daran, dass der Hash wie in Befehlszeile -R-Option beschrieben zufällig ausgewählt wird. Ich denke.
test.sh
#!/bin/sh
#Schneiden Sie die erste Spalte aus, sortieren Sie, Deduplizierung
cut --fields=1 hightemp.txt | sort | uniq > result_test.txt
#Im Python-Programm ausführen und zum Vergleich nach Diff sortieren
python main.py | sort > result.txt
#Überprüfen Sie das Ergebnis
diff --report-identical-files result.txt result_test.txt
Terminal
segavvy@ubuntu:~/Dokument/100 Sprachverarbeitung klopfen 2015/17$ ./test.sh
Dateiergebnis.txt und Ergebnis_test.txt ist das gleiche
Das ist alles für den 18. Schlag. Wenn Sie Fehler haben, würde ich mich freuen, wenn Sie darauf hinweisen könnten.
Recommended Posts