1. 程式人生 > >day6 列表的生成(實現矩陣轉置)

day6 列表的生成(實現矩陣轉置)

# 實現矩陣轉置的兩種方式
#   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迴圈
這裡寫程式碼片`
‘‘‘