Python學習之路(高級特性之列表)

高級特性之列表生成式

# 列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。 range()
# 比如:
# 方法一:

print(list(range(11)))
print(tuple(range(11)))

# 如果要按照某種表達式生成列表呢?
L = []
for x in range(11): # 左閉右開原則 [0, 11) 即  0<= x < 11 即 0 - 10
    # L.append(x * x) # n*n
    L.append(x + x) #...
print(L)

# 方法二 超級簡便的寫法
print([x * x for x in range(10, 101)]) 
print((x * x for x in range(10, 101))) 
print('還可以在里邊加上一些判斷或者規則:') # <generator object <genexpr> at 0x000000D003521BF8>
# 還可以在里邊加上一些判斷或者規則等
print([ x * x for x in range(10, 101) if x % 6 == 0 ])
print('判斷等價于:')
L1 = []
for x in range(10, 101):
    if x % 6 == 0:
        L1.append(x*x)
print(L1)
print('還可以在循環里邊嵌套循環')
#還可以在循環里邊嵌套循環:
print( [ x * y for x in range(1, 11) for y in range(11, 21) ] )

print('嵌套等價于:')
L2 = []
for x in range(1, 11):
    for y in range(11, 21):
        L2.append(x * y)
print(L2)

# 導入 文件模塊  (注: 導入模塊 放在文檔頂部,此處只是方便練習)
import os
# 列出當前目錄下的文件名稱
print([d for d in os.listdir('.')])

# for 循環可以有一個甚至多個變量,比如:
b = {'dp': '24', 'cpy': '12', 'ch': '13'}
for k, v in b.items():
    print(k, '=', v)

print((k + '=' + v for k, v in b.items()))  # <generator object <genexpr> at 0x000000D003521BF8>

# 把一個list中的字符串全部變成小寫
L3 = ['HellO', 'HI', 'dengpeng', 'LoVe']
print([s.capitalize() for s in L3]) # 把字符串 第一個字母大寫 其余小寫
print([s.lower() for s in L3]) # 把字符串全部小寫
print([s.upper() for s in L3]) # 把字符串全部大寫

練習

如果list中既包含字符串,又包含整數,由于非字符串類型沒有lower()方法,所以列表生成式會報錯:
所以,使用內建的isinstance函數可以判斷一個變量是不是字符串:

L4 = ['AN', 'AH', 'DP','zAA', 18]
L5 = [ s.lower() for s in L4 if isinstance(s, str)]
print(L5)
if L5 != ['an', 'ah', 'dp', 'zaa']:
    print('測試失敗')
else: 
    print('測試通過')

小結

運用列表生成式,可以快速生成list,可以通過一個list推導出另一個list,而代碼卻十分簡潔。

關注一波!喜歡一波!本人是前端菜鳥,正在做自己的個人博客鄧鵬的博客,歡迎來交流學習, 使用的技術 vue + koa2 + mysql + php + nginx!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最近在慕課網學習廖雪峰老師的Python進階課程,做筆記總結一下重點。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,735評論 0 5
  • http://python.jobbole.com/85231/ 關于專業技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,625評論 1 118
  • 一、高級特性切片 對這種經常取指定索引范圍的操作,用循環十分繁瑣,因此,Python提供了切片(Slice)操作符...
    zzj丶閱讀 562評論 0 1
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,914評論 18 139
  • 屋外雨潺潺,終日綿綿。涼風吹過桂花殘,星漢茫茫都不見,玉殿清歡。 此日夜迎寒,獨倚欄桿。危樓槐影卷珠簾,遙寄相思君...
    喵喵喵喵寶閱讀 633評論 0 5