# 实现矩阵转置的两种方式
# 1). 列表生成式
# 2). 内置函数zip
li = [
[1,2,3,3,4],
[4,5,6,2,1],
[7,8,9,1,2]
]
# 方法1:
print([[ row[columnIndex] for row in li] for columnIndex in range(5)])
# columnIndex=0=====> 返回的是每一行的第0个索引值; [1,4,7]
# columnIndex=1=====> 返回的是每一行的第0个索引值; [2,5,8]
# 方法2:
# *li: 解包
# zip:
# 1).打包函数, 用于将可迭代的对象作为参数,
# 将对象中对应的元素打包成一个个元组,
# 然后返回由这些元组组成的列表。
# 2).如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,
# 利用 * 号操作符,可以将元组解压为列表
# 3). zip 方法在 Python 2 和 Python 3 中的不同:
# 在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。
# 如需展示列表,需手动 list() 转换。
# print(list(zip(*li)))这里写代码片
```s = {1,2,3,4,5,6,7}
<div class="se-preview-section-delimiter"></div>
# 集合生成式
print({i**2 for i in s })
<div class="se-preview-section-delimiter"></div>
# 字典生成式
print({i:i**2 for i in s })
<div class="se-preview-section-delimiter"></div>
# 1). 判断2~num之间有多少个质数?
def isPrime(num):
for i in range(2, num):
if num % i == 0:
return False
else:
return True
<div class="se-preview-section-delimiter"></div>
# primeLi = [i for i in range(1,1000) if isPrime(i)]
<div class="se-preview-section-delimiter"></div>
# print(primeLi)
<div class="se-preview-section-delimiter"></div>
# 生成器最快实现的方式:通过列表生成式改写. 一边循环, 一边计算的机制.
primeLi = (i for i in range(2,1000) if isPrime(
<div class="se-preview-section-delimiter"></div>
print(next(primeLi))
print(next(primeLi))
print(next(primeLi))
print(next(primeL这里写代码片
from collections import Iterable
for i in primeLi:这里写代码片
print(i)这里写代码片
“`
print(isinstance(primeLi,Iterable)) # 判断是否可以for循环这里写代码片
字典
print({i:i**2 for i in s })
生成器最快实现的方式:通过列表生成式改写. 一边循环, 一边计算的机制.
“`
primeLi = (i for i in range(2,1000) if isPrime(
print(next(primeLi))
print(next(primeLi))
print(next(primeLi))
print(next(primeL这里写代码片
from collections import Iterable
for i in primeLi:
print(i)
这里写代码片`
``
print(isinstance(primeLi,Iterable)) # 判断是否可以for循环
‘‘‘