一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python編程使用*解包和itertools.product()求笛卡爾積的方法

Python編程使用*解包和itertools.product()求笛卡爾積的方法

2020-12-26 00:15_小蘋果 Python

這篇文章主要介紹了Python編程使用*解包和itertools.product()求笛卡爾積的方法,涉及Python列表轉(zhuǎn)換及itertools.product()求笛卡爾積相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python編程使用*解包和itertools.product()求笛卡爾積的方法。分享給大家供大家參考,具體如下:

【問題】

目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分開成為兩個列表:

?
1
2
list1 = ['a', 'b']
list2 = ['c', 'd']

之后使用itertools.product()求笛卡爾積,應(yīng)該寫成:

?
1
2
for i in itertools.product(list1, list2):
  print i

結(jié)果為:

?
1
2
3
4
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')

然而使用eval(s)獲得的是一個元組。product的參數(shù)如果是元組則一定會報錯(product的參數(shù)是兩個列表,每個列表中的元素數(shù)量不定)。怎么破?

【解答】

其實只差一個*而已。*是python中一個賦值的技巧,叫做解包。相信很多人都見過def func(*args, **kwargs)這種寫法,在函數(shù)中,*代表不定個數(shù)的參數(shù),以tuple的方式傳入,**則是以dict的方式。在使用函數(shù)的時候,也可以有類似的方法,調(diào)用func(*args)函數(shù)時,相當(dāng)于把一個元組args拆開,當(dāng)成參數(shù)傳進(jìn)函數(shù)中。只是這樣做要小心的是,args中含有的元素數(shù)量及類型必須跟該函數(shù)定義一致,否則會報SyntaxError: invalid syntax語法錯誤。

例如,在這道題中,就可以寫成:

?
1
2
for i in itertools.product(*eval(s)):
  print i

就可以出來結(jié)果了。

這個問題用到的三個技巧:

(1)itertools.product()求笛卡爾積。itertools這個模塊中有相當(dāng)多的牛逼閃閃的數(shù)學(xué)算法,比如全排列函數(shù)permutations,組合函數(shù)combinations等等,有時候想要一個數(shù)學(xué)類的函數(shù)又不想自己寫,可以在這里找找,沒準(zhǔn)有驚喜。

(2)eval()字符串求值。eval和exec這兩個python中的逆天函數(shù),強(qiáng)大到讓人不太放心其安全性。

(3)*解包。上面已經(jīng)解釋過了,其實用到的場合感覺挺有限的,有印象即可,能在無路可走的時候靈光一現(xiàn)就好,別太指望它給你的程序帶來多大好處。

希望本文所述對大家Python程序設(shè)計有所幫助。

原文鏈接:https://www.cnblogs.com/anpengapple/p/5051013.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜柚精彩在线观看 | 天天爽天天干天天操 | 五月桃花网婷婷亚洲综合 | 四虎最新永久在线精品免费 | 日本丰满www色 | 四虎影院免费视频 | 波多野结衣之高校教师 | 白丝爆动漫羞羞动漫软件 | 免费一级特黄特色大片 | 亚洲精品午夜级久久久久 | 成人一区二区免费中文字幕 | 国产高清精品自在久久 | 国产精品成人亚洲 | 免费深夜福利 | 福利国模私拍视频在线观看 | poronovideos极度变态 | 唯美 清纯 另类 亚洲制服 | 波多野结衣黑人系列在线观看 | xxxx成人| 欧美性色黄大片四虎影视 | 午夜久久免影院欧洲 | 欧美日韩成人在线视频 | 教室里老师好紧h | 无套内谢大学生A片 | 秘书小说阿蛮 | 亚洲欧美日韩国产精品影院 | fc2成人免费共享视频 | a级特黄毛片免费观看 | 四虎影视4hutv最新地址在线 | 亚洲冬月枫中文字幕在线看 | jzjzjz日本在线观看 | 性春院| yellow视频免费观看播放 | 操弄哥哥的108种姿势 | 5555kkkk香蕉在线观看 | 波多野结衣在线观看视频 | 亚洲国产精品久久久久久网站 | 甜宠巨肉h文1v1校园 | 韩国漂亮美女三级在线观看 | 青青草在线播放 | tolove第一季动画在线看 |