-2
votes

Comment utiliser tuple comme une clé d'un dictionnaire

J'ai trois listes:

dict = {(gene_1, 1):'atcatcg', (gene_2, 2):'atcatcg'}


1 commentaires

Dupliquer: Сreate Un dictionnaire d'un zip de 3 listes (pour adopter la solution donnée aux touches au lieu de valeurs est triviale)


3 Réponses :


7
votes

Utilisez Zip :

result = {(gene, number) : value for gene, number, value in  zip(gene, number, list_third)}


3 commentaires

L'amélioration mineure consiste à laisser une autre couche de zip créer directement le tuple s directement: {clé: valeur pour la clé, valeur dans zip (zip (gène, numéro), list_third)} . Et bien sûr, cela quitte la compréhension dict ne faisant rien de spécial, vous pouvez donc simplement le faire dict (zip (gène, numéro), list_third)) .


@Shadowranger qui est une solution alternative, mais je pensais que Flat était mieux qui imbriquait. Quoi qu'il en soit, si le constructeur de dict est plus rapide, votre solution est la voie à suivre.


@Raysteam: C'est définitivement plus rapide, mais ce n'est pas le tout, mettre fin à tous les critères. Personnellement, j'aime votre deuxième compréhension dict pour résister à l'envie d'utiliser des noms sans courrier indésirables, à l'aide de noms significatifs et de préciser comment ils reconquent (il est probablement plus rapide que votre première solution à démarrer, bien que légèrement plus lente que < Code> dict d'imbriquée zip ).



1
votes
  • Utilisez ZIP à itérer sur les trois listes
    • Cela produira des tuples (gènes, nombre, de séquence)
    • extrait gène et numéro pour la clé et utilisez la séquence pour la valeur.

0 commentaires

9
votes

Utilisez le constructeur dict constructeur et zip ... deux fois: xxx


0 commentaires