脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python的列表推导式你了解吗

Python的列表推导式你了解吗

2022-11-11 11:32吴声子夜歌 Python

这篇文章主要为大家详细介绍了Python的列表推导式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

语法

1.普通

?
1
[expression for target in iterable]

2.带条件

?
1
[expression for target in iterable if condition]

3.嵌套

?
1
2
3
4
[expression for target1 in iterable1 if condition1
            for target2 in iterable2 if condition2
                        ...
            for targetN in iterableN if conditionN]

实例

?
1
2
3
4
5
x = [1, 2, 3, 4, 5]
x = [i * 2 for i in x]
print(x)
 
# [2, 4, 6, 8, 10]
?
1
2
3
4
y = [i for i in range(10)]
print(y)
 
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
?
1
2
3
4
5
6
7
8
9
10
# 获取矩阵第二列
matrix = [
    [1, 2, 3],
    [3, 5, 6],
    [7, 8, 9]
]
col2 = [row[1] for row in matrix]
print(col2)
 
# [2, 5, 8]
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 获取矩阵主对角线元素
matrix = [
    [1, 2, 3],
    [3, 5, 6],
    [7, 8, 9]
]
diag = [matrix[i][i] for i in range(len(matrix))]
print(diag)
 
diag2 = [matrix[i][len(matrix) - i - 1] for i in range(len(matrix))]
print(diag2)
 
# [1, 5, 9]
# [3, 5, 7]
?
1
2
3
4
5
6
7
8
# 创建内嵌列表
a = [[0] * 3 for i in range(3)]
print(a)
a[1][1] = 5
print(a)
 
# [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
# [[0, 0, 0], [0, 5, 0], [0, 0, 0]]
?
1
2
3
4
5
# 20以内偶数列表
b = [i for i in range(20) if i % 2 == 0]
print(b)
 
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
?
1
2
3
4
5
6
# 筛选F开头的单词
words = ['Great', 'FishC', 'Brilliant', 'Excellent', 'Fantistic']
res = [word for word in words if word.startswith('F')]
print(res)
 
# ['FishC', 'Fantistic']
?
1
2
3
4
5
6
7
8
9
10
# 展开二维列表
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
flatten = [col for row in matrix for col in row ]
print(flatten)
 
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

等价于

?
1
2
3
4
flatten = []
for row in matrix:
    for col in row:
        flatten.append(col)
?
1
2
3
4
5
# 笛卡尔积
fulljoin = [x + y for x in '12345' for y in 'abcde']
print(fulljoin)
 
# ['1a', '1b', '1c', '1d', '1e', '2a', '2b', '2c', '2d', '2e', '3a', '3b', '3c', '3d', '3e', '4a', '4b', '4c', '4d', '4e', '5a', '5b', '5c', '5d', '5e']
?
1
2
3
4
ans = [[x, y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 == 0]
print(ans)
 
# [[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!  

原文链接:https://blog.csdn.net/cold___play/article/details/123638695

延伸 · 阅读

精彩推荐
  • PythonOpenCV-Python实现轮廓的特征值

    OpenCV-Python实现轮廓的特征值

    轮廓自身的一些属性特征及轮廓所包围对象的特征对于描述图像具有重要意义。本篇博文将介绍几个轮廓自身的属性特征及轮廓包围对象的特征,感兴趣的...

    一天一篇Python库4422021-11-26
  • Python使用python如何删除同一文件夹下相似的图片

    使用python如何删除同一文件夹下相似的图片

    这篇文章主要给大家介绍了关于利用python如何删除同一文件夹下相似的图片的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一...

    MHyourh7692021-10-25
  • Python完美解决Python2操作中文名文件乱码的问题

    完美解决Python2操作中文名文件乱码的问题

    下面小编就为大家带来一篇完美解决Python2操作中文名文件乱码的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看...

    脚本之家4282020-09-16
  • PythonPython数据结构之顺序表的实现代码示例

    Python数据结构之顺序表的实现代码示例

    这篇文章主要介绍了Python数据结构之顺序表的实现代码示例,简单介绍了顺序表的相关内容,然后分享了其代码示例,具有一定参考价值,需要的朋友可以...

    yupeng2792020-12-18
  • Pythonpython使用sorted函数对列表进行排序的方法

    python使用sorted函数对列表进行排序的方法

    这篇文章主要介绍了python使用sorted函数对列表进行排序的方法,涉及Python使用sorted函数的技巧,非常具有实用价值,需要的朋友可以参考下 ...

    令狐不聪6772020-05-29
  • Pythonpython pip如何手动安装二进制包

    python pip如何手动安装二进制包

    这篇文章主要介绍了python pip如何手动安装二进制包,帮助大家更好的进行python开发,感兴趣的朋友可以了解下...

    钢铁侠的知识库5982020-09-30
  • PythonPython使用Numpy实现Kmeans算法的步骤详解

    Python使用Numpy实现Kmeans算法的步骤详解

    将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。这篇文章主要介绍了Python使用Numpy实现Kmeans算法,需要的朋友可以参考下...

    晴一千天5812022-02-28
  • Python5分钟快速掌握scrapy爬虫框架

    5分钟快速掌握scrapy爬虫框架

    很早之前就开始用scrapy来爬取网络上的图片和文本信息,一直没有把细节记录下来。这段时间,因为工作需要又重拾scrapy爬虫,本文和大家分享下,包你一...

    Python中文社区4982020-12-07