zoukankan      html  css  js  c++  java
  • python推导式

    一、列表推导式

    作用:用一个表达式创建一个有规律的列表或控制一个有规律列表

    需求:创建一个0~10的列表

    • while循环实现
    # 1. 准备一个空列表
    list1 = []
    
    # 2. 书写循环,依次追加数字到空列表list1中
    i = 0
    while i < 10:
    	list1.append(i)
    	i += 1
    
    print(list1)
    

    image

    • for循环实现
    list1 = []
    for i in range(10):
    	list1.append(i)
    
    print(list1)
    

    image

    • 列表推导式实现
    list1 = [i for i in range(10)]
    print(list1)
    

    image

    1.2 带if的列表推导式

    需求:创建0~10的偶数列表

    • 方法1:range()步长实现
    list1 = [i for i in range(0, 10, 2)]
    print(list1)
    

    image

    • 方法2:if 实现
    # 2.for循环加if 创建有规律的列表
    list2 = []
    for i in range(10):
    	if i % 2 == 0:
    		list2.append(i)
    
    print(list2)
    
    # 3. 带if的列表推导式
    list3 = [i for i in range(10) if i % 2 == 0]
    print(list3)
    

    image

    1.3 多个for循环实现列表推导式

    需求:创建列表如下:
    [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

    • 代码如下:
    list1 = []
    for i in range(1, 3):
    	for j in range(3):
    		list1.append((i, j))
    
    print(list1)
    
    # 多个for-------------
    list2 = [(i, j) for i in range(1, 3) for j in range(3)]
    print(list2)
    

    二、字典推导式

    dict1 = {i: i ** 2 for i in range(1, 5)}
    print(dict1)
    
    # 将列表合并为一个字典--------
    list1 = ['name', 'age', 'gender']
    list2 = ['Tom', 20, 'man']
    
    dict2 = {list1[i]: list2[i] for i in range(len(list1))}
    print(dict2)
    

    image

    总结:
    1.如果两个列表数据个数相同,len统计任何一个列表的长度都可以
    2.如果两个列表数据个数不同,len统计数据多的列表数据个数会报错,len统计数据少的列表数据个数不会报错

    • 提取字典中的目标数据
    counts = {'MBP': 268, 'HP': 125, 'dell': 201, 'Lenovo': 199, 'acer': 99}
    
    # 需求:提取上述电脑数量大于等于200的字典数据
    count1 = {key: value for key, value in counts.items() if value >= 200}
    print(count1)   # {'MBP': 268, 'dell': 201}
    

    三、集合推导式

    需求:创建一个集合,数据为下方列表的2次方
    list1 = [1, 1, 2]
    代码如下:

    list1 = [1, 1, 2]
    set1 = {i ** 2 for i in list1}
    print(set1)  # {1, 4}
    

    注意:集合有去重功能。

  • 相关阅读:
    20145201 《Java程序设计》第四周学习总结
    20145201 《Java程序设计》第三周学习总结
    20145201 《Java程序设计》第二周学习总结
    20145201 《Java程序设计》第一周学习总结(修改)
    输入与输出
    Fibonacci
    Collection与Map
    异常处理
    接口和多态
    继承与多态
  • 原文地址:https://www.cnblogs.com/qian-yuan/p/14605012.html
Copyright © 2011-2022 走看看