Python – Lista de grupos de tuplas al diccionario

Dada una lista de tuplas, la tarea es escribir un Programa de Python para obtener el dict en esta tupla.

Example:

Input: [(1, 2, 3, 4, 5, 6), (1, 4), 
        (3, 5, 3, 4, 5, 6), (5, 7),
        (5, 6), (4, 4)]
Output:{1: [2, 3, 4, 5, 6, 4], 3: (5, 3, 4, 5, 6), 5: [7, 6], 4: [4]}

Ejemplo 1:

Cree una lista de tuplas como se muestra. Entonces la tarea aquí es agrupar la lista de tuplas en un diccionario. Para este propósito, cree un diccionario vacío como se muestra. Luego itere a través de la lista de tuplas para agruparlas en el diccionario.

Python3

# create a list of tuples.
test = [(1, 2), (1, 4), (3, 5), (5, 7)]
 
# create a empty dictionary name new_dict
new_dict = {}
 
# a for loop to iterate the list of tuples
for i in test:
   
    # checking whether the dictionary
    # has the key already.
    # If it returns No, a new Key is created.
    # If the key is not present the first
    # value of the tuple is made as the key
    if new_dict.get(i[0], 'No') == 'No':
       
      # THe remaining element is made
      # as values of the key
        new_dict[i[0]] = i[1:]
    else:
      # If the key is already present assign
      # the remaining element as values to
      # the corresponding key
        new_dict[i[0]] = new_dict.get(i[0]) + i[1:]
print(new_dict)
Producción

{1: (2, 4), 3: (5,), 5: (7,)}

Como puede ver en la salida, la lista de tuplas se agrupa en un diccionario donde los valores siguen siendo una tupla de elementos. 

Ejemplo 2: 

Si desea que los valores del diccionario sean una lista, cree una nueva lista de tuplas. La ganancia de la tarea es agrupar la lista de tuplas en un diccionario. Para este propósito, creemos un diccionario vacío como se muestra. Aquí, los valores del diccionario tienen que ser una lista. Los pares clave-valor con un solo elemento en el valor seguirán siendo una tupla, así que conviértalos en listas.

Para obtener una explicación detallada, revise el código junto con los comentarios a continuación.

Python3

# create a list of tuples
test = [(1, 2, 3, 4, 5, 6), (1, 4),
        (3, 5, 3, 4, 5, 6), (5, 7),
        (5, 6), (4, 4)]
 
# create a empty dictionary name new_dict
new_dict = {}
 
# a for loop to iterate the list of tuples
for i in test:
   
    # checking whether the dictionary
    # has the key already.
    # If it returns No, a new Key is created.
    # If the key is not present the first
    # value of the tuple is made as the key
    if new_dict.get(i[0], 'No') == 'No':
       
          # THe remaining element is
        # made as values of the key
        new_dict[i[0]] = i[1:]
    else:
       
          # If the key is already present assign
        # the remaining element as values to
        # the corresponding key
          # add the values to the tuples and them
        # convert them to list using list() function
        new_dict[i[0]] = list(new_dict.get(i[0]) + i[1:])
 
# if the length of value is 1,
# it would be still as tuple,
# so convert them as list using list() function
for k, v in new_dict.items():
    if len(v) == 1:
        new_dict[k] = list(v)
print(new_dict)
Producción

{1: [2, 3, 4, 5, 6, 4], 3: (5, 3, 4, 5, 6), 5: [7, 6], 4: [4]}

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *