dictionary[pattern_key] = {"key": index_key, "document": index_source, "startPos":index_start, "endPos": index_end}
Dies ist ein Auszug aus der Liste meiner WörterbücherWie Liste der Wörter Wert sortieren
{
'AGACAATCTC': {'startPos': '174', 'document': 'source-document01012.txt', 'endPos': '183', 'key': 'AGACAATCTC'},
'GGTCAGACAA': {'startPos': '18', 'document': 'source-document01012.txt', 'endPos': '27', 'key': 'GGTCAGACAA'},
'TAGATGAAGT': {'startPos': '102', 'document': 'source-document01012.txt', 'endPos': '111', 'key': 'TAGATGAAGT'}
}
Wie kann ich Art, dass durch Dokument und dann durch startPos?
habe ich versucht, so etwas wie dies funktioniert aber nicht
sorted_dict = sorted(dictionary, key=itemgetter(pattern_key[document]))
script.py
#!/usr/bin/env python
import sys
dictionary = {};
for pattern in sys.stdin:
if "," in pattern:
pattern_key, pattern_source, pattern_start, pattern_end = pattern.strip().split(",")
index_file = open('index.txt', 'r')
for line in index_file:
if "," in line:
index_key, index_source, index_start, index_end = line.strip().split(",")
if pattern_key == index_key:
dictionary[pattern_key] = {"document": index_source, "startPos":index_start, "endPos": index_end}
sorted(dictionary.items(), key = lambda x: (x[1]['document'], int(x[1]['startPos'])))
for k, v in dictionary.items():
print (k, '-->', v)
Für die Ausgabe möchten Sie die gesamten dict-Werte oder nur die Schlüsselnamen? ['AGACAATCTC', 'TAGATGAAGT'] so? – akash12300
Ich brauche die gesamte Ausgabe nach Dokument sortiert und dann startPos ... –
Sorted aktualisiert das Wörterbuch nicht, um sortierte Werte zu haben. Sie müssen die Liste der (, ) Tupel verwenden, die vom Befehl sorted() zurückgegeben werden. Wenn Sie eine Liste von Tupeln in ein Wörterbuch konvertieren und dann verwenden, kann dies wiederum die sortierte Reihenfolge stören. –
akash12300