日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python:列表推导式

發布時間:2023/11/29 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python:列表推导式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python中有種獨特的語法:推導式,可以將代碼壓縮到1行,但是不使用也不影響。

有三種:列表、字典、集合(注意沒有元組推導式)

列表推導式

# 1、一行代碼實現1—100之和(知識點:列表推導式) print(sum([x for x in range(1, 101)])) # 解釋: # 列表推導式語句用[]包圍,[]中先執行for循環語句,將每次循環取得的值再執行for語句之前的表達式,然后將結果放入列表中,相當于如下語句 li = [] for x in range(1, 101):li.append(x) print(li) print(sum(li)) # 列表推導式還支持更復雜的語句,核心是用[]將生成列表的邏輯封裝起來 # 求1-100之內能被4整除,但是不能被5整除的所有數 print([x for x in range(1, 101) if x % 4 == 0 and x % 5 != 0]) # 多重循環,先執行一次外層循環,再循環內層遍歷所有元素 li = [a + b for a in '123' for b in 'abc'] # 輸出 ['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']# 更多用法 li2 = [k+':'+v for k, v in {'name': 'kobe', 'age': '41'}.items()] # 輸出 ['age:41', 'name:kobe']# 問題:有兩個列表a和b,找出在a中但不在b中的元素(a有b沒有),在a和b中都存在的元素(ab都有),a和b中不同的元素(a有b沒有,b有a沒有) a = [1, 2, 3, 4, 5] b = [3, 4, 5, 6, 7] # 在a中但不在b中的元素(a有b沒有) li1 = [x for x in a if x not in b] print(li1) # 在a和b中都存在的元素(ab都有) li2 = [x for x in a if x in b] print(li2) # a和b中不同的元素(a有b沒有,b有a沒有) li3 = [x for x in a+b if x not in li2] print(li3)

?

?

字典推導式

# 字典推導式(用花括號{}包圍起來) dict = {x: x*x for x in [1, 2, 3]} # 輸出 {1: 1, 2: 4, 3: 9}

?

集合推導式

# 集合推導式(也是用花括號包圍,和字典推導式區別只是在for語句的前面表達式不一樣,沒有:) s = {x for x in 'agjsgnjkjg' if x not in 'sgjkajhag'} print(type(s))

?

元素推導式(沒有)

# 元組推導式????(既然列表推導式用[],字典和集合推導式用{},那元組推導式當然用()了) # 對不起么有元組推導式,圓括號在Python中被用作生成器的語法了 tup = (x for x in [1,2,3]) print(type(tup)) # 輸出:<class 'generator'>,可以看到是一個生成器 # 如果非要按照上面的規律生成元組,需要顯式的調用元組轉換函數tuple() tup = tuple((x for x in [1,2,3])) print(tup) print(type(tup)) # 輸出: # (1, 2, 3) # <class 'tuple'>

?

轉載于:https://www.cnblogs.com/gcgc/p/11589186.html

總結

以上是生活随笔為你收集整理的python:列表推导式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。