Python3 学习笔记16_高级特性(列表生成式)_20180307

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 学习网站:www.liaoxuefeng.com

#****************************************************
#                   Python3 高级特性-列表生成式       *
#****************************************************
print ("--------------------分割线------------------")

#============
# 列表生成式
#============
'''
列表生成式即List Comprehensions,是python内置的非常简单却强大的可以
用来创建list的生成式。
'''

# 生成list[1, 2, 3, 4, 5],生成1..n,即range(1, n-1)
print( list(range(1,6)) )           # [1, 2, 3, 4, 5]

# 生成[1*1, 2*2, 3*3,...,n*n],方法一循环:
list_a = []
for x in range(1,6):
    list_a.append(x*x)
print(list_a)                       # [1, 4, 9, 16, 25]

# 循环太繁琐,可以用一行列表生成式语句代替
#list_b = [x*x for x in range(1,6)]
print( [x*x for x in range(1,6)] )  # [1, 4, 9, 16, 25]

'''
写列表生成式时,把要生成的元素x*x放到前面,后面跟for循环,就可以把list
创建出来。for循环后面还可以加上if判断。
'''
# 输出1-10之间偶数的平方
list_b = [x*x for x in range(1, 11) if x%2 == 0]
print( list_b )                     # [4, 16, 36, 64, 100]
print ("--------------------分割线------------------")

# 两层循环,生成全排列
list_b = [m+n for m in 'AB' for n in 'XYZ']
print( list_b )                     # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ']

# 列出当前目录上一层目录下的所有文件和目录名
import os
print( [d for d in os.listdir('../')] ) # ['GIT', 'Python']

# for循环同时使用两个甚至更多变量,如dict的items()可以同时迭代key、value
dict_a = {'name':'tom', 'age':8}
for key,val in dict_a.items():
    print(key,val, end=',')         # name tom,age 8,
print()

# 列表生成式使用两个变量来生成list
dict_b = {'name':'jim', 'gender':'M'}
list_b = [ key + '=' + val for key,val in dict_b.items() ]
print( list_b )                     # ['name=jim', 'gender=M']

# 把list中所有的字符串都变成小写
list_c = ['TOM', 'JIM', 'NIK']
print( [t.lower() for t in list_c] )    # ['tom', 'jim', 'nik']

# 将下面列表list_d中字符串变为小写,非字符串不处理
list_d = ['Hello', 'World', 18, 'Apple', None]
list_e = [s.lower() for s in list_d if isinstance(s, str)]
print( list_e )                     # ['hello', 'world', 'apple']
print ("--------------------分割线------------------")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值