Es posible reemplazar todos los valores de un diccionario, independientemente de su valor, con el número entero 1?

Gracias!

se trató de algo?
antes de publicar aquí, ASÍ que nos fuertemente sugieren para probar algo y, finalmente, publicar, porque el significado de esta comunidad no es para proporcionar listos-para-usar soluciones, pero ayudar a la gente a aprender y a entender mejor sus problemas 🙂

OriginalEl autor user1620716 | 2012-10-18

4 Comentarios

  1. 7

    Seguro, puedes hacer algo como:

    d = {x: 1 for x in d}

    Que crea un nuevo diccionario d que los mapas de cada tecla en d (el viejo) a 1.

    Gracias, estaba buscando algo como esto. Yo no estaba muy seguro de lo que el formato correcto era, y la última vez que traté de publicar algo sobre los diccionarios, me fue ridiculizado; de ahí la razón de que yo no publicar mi intento fallido de aquí.
    Para modificar el diccionario original: for k in d: d[k] = 1
    Sin embargo, otra manera: d = d.fromkeys(d, 1)

    OriginalEl autor Greg Hewgill

  2. 9

    Puede utilizar un diccionario de comprensión (como han dicho otros) para crear un nuevo diccionario con las mismas claves que el viejo diccionario, o, si usted necesita para hacer todo en su lugar:

    for k in d:
        d[k] = 1

    Si realmente eres aficionado de 1 línea, usted puede hacerlo en su lugar con update:

    d.update( (k,1) for k in d )

    OriginalEl autor mgilson

  3. 0

    Sí, es posible. Iterar a través de cada tecla en el diccionario y establecer la clave relacionadas a 1.

    OriginalEl autor thegrinner

  4. 0
    a = {1:2, 2:2,3:2}
    a = {x:1 for (x,_) in a.iteritems()}
    print a

    {1: 1, 2: 1, 3: 1}

    seguramente sólo {k:1 for k in a}… no es necesario conseguir que cada elemento sólo para lanzar el valor de distancia…
    Tenga en cuenta que esto no modificar el original dict. No es realmente un problema a menos que usted está planeando sobre el encapsulado en una función: def overwrite_dict_values(d, new_value): ...

    OriginalEl autor mbatchkarov

Dejar respuesta

Please enter your comment!
Please enter your name here