J'ai un fichier texte layed comme ceci:Swap paire de clés et la valeur de tableau
1 a, b, c
2 c, b, c
2.5 a, c
Je voudrais inverser les touches (le nombre) et les valeurs (CSV) (ils sont séparés par un caractère de tabulation) pour produire ceci:
a 1, 2.5
b 1, 2
c 1, 2, 2.5
(Remarquez comment 2 n'est pas dupliqués pour c)
Je ne ai pas besoin cette sortie exacte.. Les nombres dans l'entrée sont classés, tandis que les valeurs ne le sont pas. Les clés de sortie doivent être commandées, ainsi que les valeurs.
Comment est-ce que je peux faire ceci? J'ai accès aux utilitaires de shell standard (awk, sed, grep ...) et GCC. Je peux probablement prendre un compilateur/interprète pour d'autres langues si nécessaire.
Très bien! Un bug, cependant: la 'valeur' n'est pas classée comme un nombre. Je le veux commandé en nombre. Par exemple, je reçois ceci: 13 18 2 3 35 39 6. – strager
Modifier la dernière ligne à: csv_writer.writerow ([touche] + triée ([float (x) pour x dans (maindict [clé])]) Cela devrait faire l'affaire;) – ChristopheD
Je reçois cette erreur avec la mise à jour: ValueError: littéral invalide pour float():. – strager