#/usr/bin/env python3
# -*- coding:utf-8 -*-
import os
'''
学习笔记---生成式的格式:
【公式 for x in 域 if】
1.公式:字符串型数据可以用连词符+,数值型数据可以用*
2.x
3.域:可以是函数例如下面的range,也可以是list、dict等
4.if判断条件对生成式进一步优化
4.生成式形式多样,很大程度上提高了开发效率
'''
#list生成式Comprehensions
lst_comp = list(range(1,11))
print(lst_comp)
#生成x2的for循环方法,首先生成一个空的list
lst_sqr_for = []
for x in range(1,11):
lst_sqr_for.append(x * x)
print(lst_sqr_for)
#用列表生成式来做
lst_sqr_comp = [x*x for x in range(1,11)]
print(lst_sqr_comp)
#for循环后还可以加if
lst_sqr_comp_if = [x*x for x in range(1,11) if x % 2 == 0]
print(lst_sqr_comp_if)
#双层循环实现笛卡尔积
lst_doub = [x + y for x in('012') for y in('XYZ')]
print(lst_doub)
#扩展:列出当前目录所有的文件和目录名
lst_dir = [d for d in os.listdir('.')]
print(lst_dir)
#初学,尝试了一下,直接打印就可以,后续慢慢学,不知道哪里会出问题
print(os.listdir())
#遍历dict的值和字符串,在迭代中写过
dict_chars = {'1':'a', '2':'b', '3':'c'}
for k,v in dict_chars.items():
print(k,'=', v)
#通过dic内的key和value生成list
dict_chars = {'1':'a', '2':'b', '3':'c'}
lst_dict = [k +'='+ v for k,v in dict_chars.items() ]
print(lst_dict)
#将大写字母转换为小写
lst_upper = ['aB', 'cD', 'Ef']
lst_lower = [s.lower() for s in lst_upper]
print(lst_lower)
#练习
lst_introduce = ['Hello,','I\'m',18,'years old.']
print(lst_introduce)
lst_introduce_lower = [x.lower() for x in lst_introduce if isinstance(x,str)]
print(lst_introduce_lower)
【python】列表生成式
最新推荐文章于 2023-12-07 19:55:14 发布