python基础教程_list列表生成式

生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):

list(range(1,11))

生成[1x1, 2x2, 3x3, …, 10x10]怎么做?
方法一:
是循环:

l=[]
for(x in range(1,11)):
    l.append(x*x)
l

方法二:
循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

[x*x for x in range(1,11)]

延伸:
筛选出仅偶数的平方:

[x*x for x in range(1,11) if x % 2 ==0]

还可以使用两层循环,可以生成全排列:

[m+n for m in 'ABC' for n in 'XYZ']

三层和三层以上的循环就很少用到了。


列出当前目录下的所有文件和目录名,可以通过一行代码实现:

import os
[d for d in os.listdir('.')]

Python编程语言如何获得目录中的内容

在Python中可以使用os.listdir()函数获得指定目录中的内容。其原型如下所示。

os.listdir(path) 

其参数含义如下。path 要获得内容目录的路径。以下实例获得当前目录的内容。

import os  

os.listdir(os.getcwd())  

获得当前目录中的内容

如何用Python编程语言创建目录
在Python中可以使用os.mkdir()函数创建目录。其原型如下所示。

os.mkdir(path) 

其参数含义为。 path 要创建目录的路径。以下的实例将在E:\book目录下创建temp目录。

import os  
os.mkdir('E:\\book\\temp') 

使用os.mkdir创建目录
删除目录
在Python中可以使用os.rmdir()函数删除目录。其原型如下所示。

os.rmdir(path) 

其参数含义如下。path 要删除的目录的路径。以下实例删除E:\book\temp目录。

 import os  
 os.rmdir('E:\\book\\temp')  

删除目录需要说明的是,使用os.rmdir删除的目录必须为空目录,否则函数出错。以上的内容就是对Python编程语言如何获得目录中的内容,创建目录,还有如何用Python编程语言删除目录的相关内容的介绍。

Python的字典dict的items(), keys(), values()都返回一个list

dict = { 1 : 2, 'a' : 'b', 'hello' : 'world' }
dict.values()
结果:
['b', 2, 'world']  
dict.keys()
结果:
['a',1,'hello']
dict.items()
结果:
[('a', 'b'), (1, 2), ('hello', 'world')]  

for循环其实可以同时使用两个甚至多个变量,比如dict的items()可以同时迭代key和value:

d = {'x': 'A', 'y': 'B', 'z': 'C' }
for k,v in d.items():
    print(k,'=',v)
结果:
y = B
x = A
z = C

列表生成式也可以使用两个变量来生成list:

d = {'x': 'A', 'y': 'B', 'z': 'C' }
[k + '=' + v for k,v in d.items()]

把一个list中所有的字符串变成小写:

L = ['Hello', 'World', 'IBM', 'Apple']
[s.lower for s in l]

如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:

L = ['Hello', 'World', 18, 'Apple', None]
[s.lower() for s in L]

使用内建的isinstance函数可以判断一个变量是不是字符串:

x = 'abc'
y = 123
isinstance(x, str)
True
isinstance(y, str)
False

修改列表生成式,通过添加if语句保证列表生成式能正确地执行:

L = ['Hello', 'World', 18, 'Apple', None]
#[s.lower() for s in L]
[s.lower() for s in L if isinstance(s,str)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值