码迷,mamicode.com
首页 > 其他好文 > 详细

推到式_列表

时间:2019-03-29 00:43:21      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:运算符   var   执行流程   iter   结束   分支   col   方式   ==   

通过一行循环循环判断, 遍历出一系列数据的方式

 1 """
 2 推导式语法:
 3    i for i in iterable
 4    
 5 通过迭代对象循环得出的i, 
 6 扔到左侧进行处理, 
 7 处理结束后放到容器中
 8 
 9 
10 执行流程:
11    从左向右, 
12    左边的循环是外循环, 右边的循环是内循环
13    进行右侧的条件判断后返回给最左边处理
14    左边可以是三目运算符
15    处理完毕后,放入容器进行返回
16 """

1.普通推导式

 1 # [1,2,3,4] => [2,8,24,64]
 2 listvar = [1, 2, 3, 4]
 3 
 4 res = [i << i for i in range(1, 5)]
 5 print(res)
 6 
 7 ‘‘‘
 8 li = []
 9 for i in range(1, 5):
10    li.append(i<<i)
11 print(li)
12 ‘‘‘

2.带有判断条件推导式

 1 # 最终值 + 推导式 + 单项分支
 2 # [1,2,3,4,5,6,7,8,9,10,11] => [2,4,6,8,10]
 3 listvar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
 4 
 5 li = [i for i in range(1, 12) if i % 2 == 0]
 6 print(li)
 7 
 8 ‘‘‘
 9 li = []
10 for i in range(1, 12):
11    if i % 2 == 0:
12       li.append(i)
13 
14 print(li)
15 ‘‘‘

3.多循环推导式

1 list1 = ["陈根基", "黄伟峰", "崔建伟", "陈鹏", "五月天"]
2 list2 = ["陈梦洁", "张包钱", "陈红萍", "五十辉", "李一凡"]
3 
4 li = [i + "?" + j for i in list1 for j in list2]
5 print(li)

4.带有判断条件的多循环推导式

 1 list1 = ["陈根基", "黄伟峰", "崔建伟", "陈鹏", "五月天"]
 2 list2 = ["陈梦洁", "张包钱", "陈红萍", "五十辉", "李一凡"]
 3 
 4 li = [i + j for i in list1 for j in list2 if list1.index(i) == list2.index(j)]
 5 print(li)
 6 
 7 ‘‘‘
 8 li = []
 9 for i in list1:
10    for j in list2:
11       if list1.index(i) == list2.index(j):
12          li.append((j, i))
13 
14 print(li)
15 ‘‘‘

 

推到式_列表

标签:运算符   var   执行流程   iter   结束   分支   col   方式   ==   

原文地址:https://www.cnblogs.com/caihuajiaoshou/p/10618619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!