列表推导式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号

1、列表推导式

print("----------------------列表推导式--------------------")
list1 = [2,4,6]
printString=[3*x for x in list1 if x>2]       #第一个for前面是输出的值,元组需要添加括号 可以有多个for或者if
print(printString)
#等同于上上述列表推导式
printString1=[]
for x in list1:
    if x>2:
        printString1.append(3*x)
print(printString1)

print("---------------表达式推导出一个元组---------------------")
list2 = [10,20,30]
print([[x,x**2] for x in list2 ])

print("----------对序列里每一个元素逐个调用某方法 strip()去掉前后空格-----------")
list3 = ["  string"," python ","java  "]
print([count.strip() for count in list3])

print("------两列表中的各项和---------")
list4 = [10,15,-8]
list5 = [7,24,-20]
print([x+y for x in list4 for y in list5])
print("------两列表中的各项积---------")
print([x*y for x in list4 for y in list5])
print("------两列表中的同索引积---------")
print([list4[i]*list5[i] for i in range(len(list4))])

结果:

2、嵌套列表

print("-------3*4的列表转换成4*3的列表-------")
listBefore = [[1,2,3,4],[10,20,30,40],[100,200,300,400]]
print([[row[i] for row in listBefore] for i in range(4)])
print("----与上述推导列表结果一样-----")
listAfter = []
for i in range(4):
    After_row = []      # fter_row第一次值为[1,10,100]  第二次值为[2,20,200] 以此类推
    for row in listBefore:
        After_row.append(row[i])        #row[i] 1,10,100   2,20,200  以此类推
    listAfter.append(After_row)
print(listAfter)

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值