保持清醒,不断思考。

Mike lucis


  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 联系
  •     

© 2023 Mike lucis

Theme Typography by Makito

Proudly published with Hexo

备案号: 湘ICP备2021005917号-1

友情链接: Lonely's Bolg

ღゝ◡╹)ノ♡

列表生成式

发布于 2021-06-24 Python  Advance 

¶ 列表生成式

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Exp:
# 若要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用list(range(1, 11))
# 若要生成[1x1, 2x2, 3x3, ..., 10x10]咋做

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

print('------')

# 使用列表生成式
L2 = [x * x for x in range(1,11)]
print(L2)

print('------')

# 表达式内也可加上判断语句,以进行筛选

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

print('------')

# 使用两层循环
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
------
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
------
[4, 16, 36, 64, 100]
1
2
3
4
# 使用两层循环,可生成全排列
L = [m + n for m in 'ABC' for n in 'XYZ']

print(L)
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
1
2
3
4
5
6
7
8
# Exp 实际应用: 列出当前目录下所有文件和目录名

import os


L = [d for d in os.listdir('E:\Programming-Sty\Python\exm_python_adv')]

print(L)
['ldjc.py', 'lsxyff.py', 'mddx.py', 'Unifile.py', 'ysfcz.py', '切片.ipynb', '列表生成式.ipynb', '迭代.ipynb', '迭代器.ipynb', '高阶函数.ipynb']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Exp 同时输出字典key和value

D = {'x':'A', 'y':'B', 'z':'C'}

for k, v in D.items():
print(k, '=', v)

print('------')

print([k + '=' + v for k, v in D.items()])

print('------')

# 将一个list中所有字符串变成小写
L = ['Hello', 'World']

print([s.lower() for s in L])
x = A
y = B
z = C
------
['x=A', 'y=B', 'z=C']
------
['hello', 'world']
1
2
3
4
5
6
7
# 使用if...else语句

# L = [x if x % 2 == 0 for x in range(1, 11)] # if 若在 for 前面则必须加else
# L = [x for x in range(1, 11) if x % 2 == 0 else 0] # 错误的写法
L = [x if x % 2 == 0 else -x for x in range(1,11)]

print(L)
[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

分享到 

 上一篇: LeetCode-求字符串全排列 下一篇: 高阶函数 

© 2023 Mike lucis

Theme Typography by Makito

Proudly published with Hexo

备案号: 湘ICP备2021005917号-1

友情链接: Lonely's Bolg

ღゝ◡╹)ノ♡