系統:Windows 7
語言版本:Anaconda3-4.3.0.1-Windows-x86_64
編輯器:pycharm-community-2016.3.2這個系列講講Python對清單的一些實用操作
本文介紹:兩個清單各元素進行字元串的組合
Part 1:示例說明已知清單list_a = [1, 2, 3, 4],清單list_b = ['a', 'b', 'c', 'd']
想擷取如下結果['1+a', '2+b', '3+c', '4+d'],其實就是上面兩個清單每個對應元素分别進行如下操作str(a) + "+" + b
那麼如何實作該結果呢?
Part 2:方法1建立一個空清單list_a_b
對任一清單(這裡使用list_a)進行enumerate方式周遊,擷取其每個元素的值a,再根據位置資訊擷取另外一個清單對應元素b,2個元素進行運算輸出c
将每一個c追加到清單list_a_b
代碼如下:list_a = [1, 2, 3, 4]
list_b = ['a', 'b', 'c', 'd']
# 方法1
list_a_b = []
for i, e in enumerate(list_a):
a = e
b = list_b[i]
c = str(a) + "+" + b
list_a_b.append(c)
print(list_a_b)
代碼截圖
輸出結果
Part 3:方法2之前的方法過于複雜,這種循環周遊的方法有沒有想起清單推導式,采用其更新方法list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]
完整代碼如下list_a = [1, 2, 3, 4]
list_b = ['a', 'b', 'c', 'd']
# 方法2
list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]
print(list_a_b)
Part 4:部分代碼解讀list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]' 核心在于zip(list_a, list_b)
zip實作了一個打包的效果,将每個清單每個相同位置的元素進行組合,生成一個新的對象,這個對象可以通過list函數轉換為每個元素是一個元組的清單。
我們看以下代碼實作什麼效果,進而更具體的了解ziplist_a = [1, 2, 3, 4]
list_b = ['a', 'b', 'c', 'd']
list_c = ['a', 'b', 'c', 'd']
a_b = zip(list_a, list_b)
print(a_b)
list_a_b = list(a_b)
print(list_a_b)
a_b_c = zip(list_a, list_b, list_c)
print(a_b_c)
list_a_b_c = list(a_b_c)
print(list_a_b_c)
運作結果本文為原創作品,歡迎分享朋友圈