python基础教程_list列表生成式

来源:互联网 发布:内存数据恢复软件 编辑:程序博客网 时间:2024/05/29 10:09

生成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 = Bx = Az = 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 = 123isinstance(x, str)Trueisinstance(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)]
0 0