python3進階之推導式2之嵌套列表(list)推導式(comprehensions)


嵌套列表式,列表中含列表
示例1:

# 考慮以下的 3x4 矩陣,如果你想交換行和列,可以用嵌套的列表推導式:
m1= [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],]
# 思路:先取每行首位,然后增加列的位置
m1=[[row[i] for row in m1] for i in range(4)]
print(m1)
# [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]


示例2:

mam = [('x',['open1','open1','open1']),('y',['open1','open1','open0']),('z',['open0','open0','open0'])]

def find(c):
# 元組中列表C中的字符串i,遍歷i中的字母j,判斷j是否為數字,若是則輸出
return [j for i in c for j in i if j.isdigit()]

na=[w for w, c in mam if find(c) == ['0', '0', '0']]
print(na)

示例3:
# 嵌套列表,找出含有字母“u”兩個以上的
names = [['tom','billy','liubuqun','andrew','liuxiao','steven','liuhu'],['xiaoyunna','xiaoyunwang','xiaoyunyun','sherry','eva']]

list10=[name for ls in names for name in ls if name.count('u')>=2]
print(list10)
# ['liubuqun', 'liuhu', 'xiaoyunyun']


# for語句實現代碼:
t = []
for li in names:
for name in li:
if name.count('u') >= 2:
t.append(name)
print(t)
# ['liubuqun', 'liuhu', 'xiaoyunyun']


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM