De la entrada a la prisión-deducción

Empezando N día

Comprensión: expresiones utilizadas para generar rápida y fácilmente listas o diccionarios

  • Comprensión de listas

  • estructura basica

    Lista = [expresión para variable en secuencia]

    Genera una nueva lista, los elementos de la lista son el resultado de la expresión correspondiente a cada bucle

    Es equivalente a:

    Lista = []

    para variable en secuencia:

    List.append (expresión)

    list1 = [10 for i in range(3)]
    print(list1)  # [10, 10, 10]
    
    list2 = [2 * i for i in range(1, 4)]
    print(list2)  # [2, 4, 6]
    

    Ejercicio: Escriba una lista de comprensión para producir una lista de elementos que satisfagan las siguientes reglas: str0, str3, str6, ..., str99

    list3=[f'str{i}'for i in range(0,100,3)]
    print(list3)
    
  • Estructura condicional

    Lista = [expresión para variable en secuencia si declaración condicional]

    Es equivalente a:

    Lista = []

    para variable en secuencia:

    If declaración condicional:

    List.append (expresión)

    Ejercicio: Escriba una lista de comprensión para producir una lista de elementos que satisfagan las siguientes reglas: str1, str3, str6, ..., str99

    método uno

    list1=[f'str{i}' for i in range(1,100) if i % 3 == 0 or i == 1 ]
    print(list1)
    

    Método 2: operador ternario

    list2=['str1' if i == 0 else f'str{i}' for i in range(0,100,3)]
    print(list2)
    
  • Estructura de bucle múltiple 1:

    Lista = [expresión para la variable 1 en la secuencia 1 para la variable 2 en la secuencia 2]

    Es equivalente a:

    Lista = []

    para la variable 1 en la secuencia 1:

    Para la variable 2 en la secuencia 2:

    List.append (expresión)

  • Estructura de bucle múltiple 2:

    Lista = [expresión para la variable 1 en la secuencia 1 si enunciado condicional para la variable 2 en la secuencia 2 Si enunciado condicional]

    Es equivalente a:

    Lista = []

    para la variable 1 en la secuencia 1:

    If declaración condicional:

    Para la variable 2 en la secuencia 2:

    If declaración condicional:

    List.append (expresión)

  • # 集合推导式
    a1 = {
          
          i for i in 'hello'}
    print(a1)  # {'h', 'e', 'l', 'o'}
    
    # 元组和集合推导式
    a2 = tuple(x * 2 for x in 'hello')
    print(a2)  # ('hh', 'ee', 'll', 'll', 'oo')
    
    # 字典推导式
    a3 = {
          
          x: x * 2 for x in 'hello'}
    print(a3)  # {'h': 'hh', 'e': 'ee', 'l': 'll', 'o': 'oo'}
    
    a4 = dict((x, x * 2) for x in 'hello')
    print(a4)  # {'h': 'hh', 'e': 'ee', 'l': 'll', 'o': 'oo'}
    
    # 练习3 通过字典推导式交换一个字典的键和值 dic={'a':10,'b':20,'c':30}
    dic1 = {
          
          'a': 10, 'b': 20, 'c': 30}
    # dic12 = dict((dic1[i], i) for i in dic1)
    dic2 = {
          
          dic1[i]: i for i in dic1}
    print(dic2)
    
    # 通过字典推导式交换一个字典的键和值 如果值是可变的在新的字典中不交换
    dic3 = {
          
          'a': 10, 'b': 20, 'c': 30, 'd': [10, 20]}
    dic4 = dict((i,dic3[i]) if type(dic3[i]) in (list,set,dict) else (dic3[i],i) for i in dic3)
    print(dic4)
    

Supongo que te gusta

Origin blog.csdn.net/weixin_44628421/article/details/108983882
Recomendado
Clasificación