/ / Come si aggiungono più tuple (liste, qualunque cosa) a una singola chiave di dizionario senza unirle? - python, elenco, dizionario, tuple

Come si aggiungono più tuple (liste, qualunque cosa) a una singola chiave di dizionario senza unirle? - python, elenco, dizionario, tuple

Ho cercato di capire come aggiungerepiù tuple che contengono più valori su una singola chiave in un dizionario. Ma senza successo finora. Posso aggiungere i valori a una tupla o lista, ma non riesco a capire come aggiungere una tupla in modo che la chiave ora abbia 2 tuple che contengono valori, al contrario di una tupla con tutti loro.

Ad esempio, dire il dizionario = {"Key1":(1.000,2.003,3.0029)}

e voglio aggiungere (2.3232,13.5232,1325.123) così che finisco con:

dizionario = {"Key1":((1.000,2.003,3.0029),(2.3232,13.5232,1325.123))} (ho dimenticato una serie di parentesi!)

Se qualcuno sa come si può fare, apprezzerei l'aiuto dato che in realtà sta iniziando a infastidirmi ora.

Grazie!

Modifica: grazie a tutti! Ironico che ho provato, tranne che al momento stavo cercando di rendere il valore più liste invece di più tuple; quando la soluzione era solo racchiudere le tuple in una lista. Ah l'ironia.

risposte:

9 per risposta № 1

Uso defaultdict e usa sempre append e questo sarà apparentemente.

from collections import defaultdict

x = defaultdict(list)
x["Key1"].append((1.000,2.003,3.0029))

4 per risposta № 2

Basta mappare la chiave a un elenco e aggiungere tuple all'elenco.

d = {"Key1": [(1.000,2.003,3.0029)]}

Poi più tardi..

d["Key1"].append((2.3232,13.5232,1325.123))

Ora hai:

{"Key1": [(1.0, 2.003, 3.0029), (2.3232, 13.5232, 1325.123)]}

3 per risposta № 3

Un valore di dizionario non può contenere solo due tupleda soli. Ogni chiave del dizionario viene mappata su un singolo valore, quindi l'unico modo in cui è possibile avere due tuple separate associate a quella chiave è che siano contenute in una tupla o in un elenco: {"Key1":[(1.000,2.003,3.0029),(2.3232,13.5232,1325.123)]} - nota la coppia extra di parentesi quadre.

Un modo per farlo sarebbe ottenere la correntevalore associato alla tua chiave e aggiungilo a una lista prima di reimpostare la nuova lista su quella chiave. Ma se c'è una possibilità che ti servirà per ogni chiave, dovresti farlo per tutte le chiavi all'inizio, altrimenti ti imbatterai in ogni sorta di difficoltà a capire a che livello sei.


1 per risposta № 4

Invece di:

{"Key1":(1.000,2.003,3.0029)}

Quello che vuoi è:

{"Key1":[(1.000,2.003,3.0029)]}

Quando aggiungi un'altra tupla, otterrai:

{"Key1":[(1.000,2.003,3.0029), (2.3232,13.5232,1325.123)]}

1 per risposta № 5

Penso che le tue domande siano in qualche modo mal formulate. Tu vuoi:

  1. Associare una tupla a una chiave, se la chiave non è nel dizionario
  2. Sostituisci la tupla con un elenco di due tuple, se la chiave è nel dizionario e indica una tupla
  3. Aggiungi una tupla alla lista di tuple associate a una chiave

Questo potrebbe essere ottenuto con il seguente codice:

def insertTuple(d, k, tup):
if k not in d:
d[k] = tup
elif type(d[k]) == tuple:
d[k] = [ d[k], tup ]
else:
d[k].append(tup)

0 per risposta № 6

Come sappiamo, le tuple non sono mutabili. Invece di usare una tupla di tuple. Usa la lista delle tuple che funzionerà.

prima crea una lista di tuple e poi aggiungila a una chiave di pronuncia.

dictionary = {}
listoftuples = []//create a tuples of list
dictionary[key].append(listoftuples)//appending it to a dictionary key