day6 列表的生成(實現矩陣轉置)
阿新 • • 發佈:2019-01-31
# 實現矩陣轉置的兩種方式
# 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迴圈
‘‘‘