首页 > 其他分享 >公共操作-推导式(集合、列表、字典)

公共操作-推导式(集合、列表、字典)

时间:2023-07-08 16:03:05浏览次数:42  
标签:推导 list1 列表 range print my 字典

 1 '''
 2 Python推导式(Comprehensions)是一种简洁而强大的语法,用于创建新的数据结构(如列表、集合和字典)或对现有数据结构进行转换。
 3 它可以使用更简单的方式完成迭代、筛选、映射等操作。
 4 
 5 '''
 6 # 1. 循环生成列表
 7 # 1.1 准备⼀个空列表
 8 list1 = []
 9 # 1.2 书写循环,依次追加数字到空列表list1中
10 i = 0
11 while i < 10:
12     list1.append(i)
13     i += 1
14 print(list1)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
15 
16 # 2. 列表推导式(List Comprehension)也叫列表⽣成式
17 # 列表推导式用于快速创建一个新的列表。其基本语法是将一个表达式放在方括号内,并添加一个可迭代对象的循环
18 '''
19 最佳实践:
20     1. 尽量保持列表推导式的简洁和可读性。
21     2. 可以在表达式中添加条件来过滤元素。
22     3. 避免在列表推导式中嵌套过多的循环或复杂的逻辑,以免影响可读性。
23 '''
24 # 2.1 创建一个包含0到9的平方数的列表
25 squares_list = [x ** 2 for x in range(10)]
26 print(squares_list)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
27 
28 # 2.2 创建0-10的偶数列表
29 # ⽅法⼀: range()步⻓实现
30 my_list = [i for i in range(0, 9, 2)]
31 print(my_list)  # [0, 2, 4, 6, 8]
32 # 方法二: if 实现
33 my_list = [i for i in range(10) if i % 2 == 0]
34 print(my_list)  # [0, 2, 4, 6, 8]
35 # 2.3  多个for循环实现列表推导式,多个for用空格隔开,类似于for嵌套
36 # 需求:[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
37 my_list = [(i, j) for i in range(1, 3) for j in range(0, 3)]
38 print(my_list)
39 
40 # 3. 字典推导式(Dictionary Comprehension):用于快速创建一个新的字典。其语法类似于列表推导式,但需要指定键和值的表达式,并使用冒号 : 分隔键和值
41 '''
42 最佳实践:
43     1. 可以在键和值的表达式中添加条件来进行过滤或转换。
44     2. 在创建字典时,确保键的唯一性。
45 需要注意的坑:
46     1. 在使用推导式时,尽量避免过于复杂的表达式和逻辑,以免降低可读性。
47     2. 当数据量很大或计算复杂时,推导式可能会影响程序的性能。在这种情况下,应考虑使用传统的循环和条件语句。
48 '''
49 # 3.1 创建一个将0到9的数字映射为它们的平方的字典
50 my_dict = {x: x ** 2 for x in range(10)}
51 print(my_dict)  # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
52 '''
53 3.2 如下2个列表: 列表的长度肯定要一样
54 list1 = ['name', 'age', 'gender']
55 list2 = ['Tom', 20, 'man']
56 如何快速合并为⼀个字典?
57 '''
58 list1 = ['name', 'age', 'gender']
59 list2 = ['Tom', 20, 'man']
60 my_dict = {list1[i]: list2[i] for i in range(len(list1))}
61 print(my_dict)  # {'name': 'Tom', 'age': 20, 'gender': 'man'}
62 
63 # 3.3 利用if语句,提取字典中⽬标数据
64 counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
65 # 需求:提取上述电脑数量⼤于等于200的字典数据
66 count1 = {key: value for key, value in counts.items() if value >= 200}
67 print(count1)  # {'MBP': 268, 'DELL': 201}
68 
69 # 4. 集合推导式
70 '''
71 集合推导式用于快速创建一个新的集合。其语法与列表推导式相似,只是使用大括号 {} 而不是方括号 []
72 最佳实践:
73     1. 集合推导式可以用于去除重复的元素。
74     2. 与列表推导式一样,要保持简洁和可读性。
75 '''
76 my_list1 = [1, 1, 2]
77 set1 = {i ** 2 for i in my_list1}  # 特别注意其写法
78 print(set1)  # {1, 4}
79 # 创建一个包含1到10的平方数的集合
80 squares = {x ** 2 for x in range(1, 11)}
81 print(squares)  # 输出: {64, 1, 4, 36, 100, 9, 16, 49, 81, 25}

 

标签:推导,list1,列表,range,print,my,字典
From: https://www.cnblogs.com/allenxx/p/17537340.html

相关文章

  • 【算法】根据二叉树的级别返回排序后的元素列表
    根据给定的Node树节点,返回包含按级别排序的树中元素的列表,这意味着根元素位于第一位,然后根子元素(从左到右)位于第二位和第三位,依此类推。1publicclassNode2{3publicNodeLeft;4publicNodeRight;5publicintValue;67publicNode(No......
  • python基础列表专题
    用[]可以创建列表列表可以包含各种类型且可嵌套通过切片和索引访问列表元素添加元素删除元素列表不适合频繁插入,因为每插入一个,元素都会后移动深度拷贝列表是可以改变的不可哈希的,所以不可以做字典的键 ......
  • Vue(十二):列表渲染—— v-for
    1.基础使用<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>基本列表</title><scripttype="text/javascript"src="../js/vue.js"></script></head><!--......
  • 字典
    语法字典是一种无序的数据结构,用于存储键-值对。它使用花括号{}来表示,并且键和值之间使用冒号:分隔,各个键值对之间⽤逗号隔开.语法:my_dict={key1:value1,key2:value2,...}其中,key是唯一的且不可变的(通常使用字符串或数字),而value可以是任意类型的对象。字典里......
  • 列表list的sort方法的坑
    说明列表sort方法是原地排序即会修改原列表。在日常工作中遇到一些坑,总结在示例里 示例1'''2sort是原地排序即会修改原列表3'''45#1.原地排序,没有新增列表,只是修改了原列表。如果遇到保留原始列表,可通过切片生成1个新的6my_list=[3,1,2,5,4]7so......
  • 使用STM32的usb虚拟串口CDC_Transmit_FS打印freertos的任务列表vTaskList
    创建一个任务,打印信息后,把自己删除/*USERCODEENDHeader_func_showSysInfo*/voidfunc_showSysInfo(voidconst*argument){/*USERCODEBEGINfunc_showSysInfo*//*Infiniteloop*/for(;;){osDelay(1000);chartaskList[200];......
  • Android 14 功能和变更列表
    Android14功能和变更列表https://developer.android.google.cn/about/versions/14/summary?hl=zh-cnAndroid13功能和变更列表https://developer.android.google.cn/about/versions/13/summary?hl=zh-cn Android14功能和变更列表下表列出了所有记录的可能会影响应用开......
  • python字典(二)- 嵌套
    1.字典列表alien_0={'color':'green','points':5}alien_1={'color':'yellow','points':10}alien_2={'color':'red','points':15}aliens=[alien_0,alien_1,alie......
  • word文档创建修改多级列表
    1、打开word文档,写入三个字“一级别”,选中这3个字。  2、然后在【开始】--【段落】中,选择自己想要的多级列表。3、查看正文,文字已经有了标号。然后每一次敲击回车后,都会自动补上编号。这里多写几行文字。  4、在“一级别”后,敲击回车,添加“二级别”几个字,然后选中,可以......
  • python列表
     访问方式和字符串一样有两种,一种是正向进行的,下标从0开始,另一种是反向进行的,下标从-1开始切片的语法同样适用于列表基本语法:列表名[m:n]当mn都存在时,访问所表示的元素区间但是不包括n所对应的元素当mn都不存在时,访问整个列表元素当m存在n不存在时,访问从m开始直到结尾的所......