zoukankan      html  css  js  c++  java
  • 三元表达式,列表推导是,字典生成式

    结论语法思想

    1.三元表达式条件为真的结果, if +判断的条件, else+条件为假时的结果

    2.列表推导式就是结果放在前面,循环跟着想循环的可迭代的东西(iterable)

    与列表不同的是它的标志符号'{}'且仍然返回字典的形式

    3.通过解压缩函数生成了一个字典

    需要知道的事要先将key跟value通过zip(keys,values)压缩,在通过字典生成式生成字典形式

    4.记得还有筛选,多重嵌套

    用的很少,,,,

    三元表达式

    格式为:条件为真时的结果,if + 判断的条件,else +条件为假时的结果

    三元表达式的一种思想:如果a<100 是真的,True:对应一个结果,反过来会有另一个结果

    栗子:

    a=1
    b=2
    c='jh全世界最帅' if a<100 else '全世界最帅的是jh'
    #来一个装逼的,接手同事看了要打人的
    #c=({True:'jh全世界最帅',False:'Less'}[a<100])#它的思想
    print(c)

    列表推导式

    很简单

    就是结果放在前面,循环跟着想循环的可迭代的东西(iterable)

    [变量(加工后的变量) for 变量 in iterable]

    l1 = [i for i in range(1,101)]
    print(l1)

    # 输出结果
    [1,2,3,4,5,6,...100]

    复杂一点的列表表达式可以对原列表进行变换和筛选。

    如:

    # 想得到1-10中为偶数的平方组成的list
    example = [i**2 for i in range(1,11) if i%2 == 0 ]
    print(example)

    想得到多重嵌套的list中一重嵌套中list长度大于1的list中的数为2的倍数的平方组成的list


    example4 = [[1,2,3],[4,5,6],[7,8,9],[10]]
    exmaple5 = [j**2 for i in example2 if len(i)>1 for j in i if j%2 == 0]
    print(exmaple5)

    字典生成式

    与列表不同的是它的标志符号'{}'

    打印[0:9]**2的结果

    print({i:i**2 for i in range(10)})
    #结果为{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

    打印判断[0:9]%2是0的布尔值返回字典

    b={i:i% 2==0 for i in range(10)}
    print(b)

    zip()方法

    通过解压缩函数生成了一个字典

    需要知道的事要先将key跟value通过zip(keys,values)压缩,在通过字典生成式生成字典形式

    keys = ['name', 'age', '0gender']
    values = ['nk', 19, 'male']

    res = zip(keys, values)
    print(F"zip(keys,values): {zip(keys,values)}")

    info_dict = {k: v for k, v in res}
    print(f"info_dict: {info_dict}")
    '''
    结果
    zip(keys,values): <zip object at 0x11074c088>
    info_dict: {'name': 'nk', 'age': 19, 'sex': 'male'}'''

    练习

    练习一:编写名为collatz(number)的函数;实现的功能:参数为偶数时,打印num// 2;参数为奇数时,打印3*number + 1

    num=int(input('please input integer.'))
    print (num//2 if num%==0 else num*3+1)

    ...

    .



  • 相关阅读:
    Java8新特性详解
    RedisTemplate详解
    RestTemplate详解
    windows中将多个文本文件合并为一个文件
    commons-lang 介绍
    commons-cli介绍
    commons-collections介绍
    commons-codec介绍
    commons-beanutils介绍
    commons-io介绍
  • 原文地址:https://www.cnblogs.com/jhpy/p/11618747.html
Copyright © 2011-2022 走看看