前情回顧
大家好,我又回來(lái)了。今天我會(huì)繼續(xù)和大家分享itertools這個(gè)神奇的自帶庫(kù),首先,讓我們回顧一下上一期結(jié)尾的時(shí)候我們講到的3個(gè)方法:
combinations()
combinations_with_replacement()
permutations()
讓我們對(duì)這3個(gè)在排列組合中經(jīng)常會(huì)使用到的函數(shù)做個(gè)總結(jié)
combinations()基礎(chǔ)概念
模板:combinations(iterable, n)
參數(shù):iterable為可迭代的對(duì)象(list,tuple...), n為想要的組合包含的元素?cái)?shù)
返回值: 返回在iterable里n個(gè)元素組成的tuple的全部組合(不考慮順序,元素自身不可重復(fù))
應(yīng)用實(shí)例
import itertools as it lst = [1,2,3] result = list(it.combinations(lst,2)) print(result) Out: [(1, 2), (1, 3), (2, 3)]
這里我們從lst這個(gè)list里面選取所有由兩個(gè)元素組成的組合,得到結(jié)果如圖所示,這里沒(méi)有考慮順序,因此我們不會(huì)看到(1,2)和(2,1)被算作兩種組合,元素自身不可重復(fù),所以沒(méi)有(1,1),(2,2),(3,3)的組合出現(xiàn)
combinations_with_replacement()基礎(chǔ)概念
模板:combinations_with_replacement(iterable, n)
參數(shù):iterable為可迭代的對(duì)象(list,tuple...), n為想要的組合包含的元素?cái)?shù)
返回值: 返回在iterable里n個(gè)元素組成的tuple的全部組合(不考慮順序,元素自身可重復(fù))
應(yīng)用實(shí)例
import itertools as it lst = [1,2,3] result = list(it.combinations_with_replacement(lst,2)) print(result) Out: [(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)]
和剛才的區(qū)別是多了(1,1),(2,2),(3,3)的組合,也就是說(shuō)允許每個(gè)元素自己和自己組合
permutations()基礎(chǔ)概念
模板:permutations(iterable, n=None)
參數(shù):iterable為可迭代的對(duì)象(list,tuple...), n為想要的組合包含的元素?cái)?shù)
返回值: 返回在iterable里n個(gè)元素組成的tuple的全部組合(考慮順序,元素自身不可重復(fù))
應(yīng)用實(shí)例
import itertools as it lst = [1,2,3] result = list(it.permutations(lst,2)) print(result) Out: [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
我們用permutations得到的結(jié)果是自身元素不能重復(fù)的情況下,一個(gè)iterable里面由n個(gè)元素構(gòu)成的全部組合,考慮順序
不同點(diǎn)匯總我們這里可以簡(jiǎn)單匯總一下三個(gè)函數(shù)的不同點(diǎn),匯總一張精華滿滿的表格送個(gè)大家,希望大家如果日后有一天需要用到的話可以回來(lái)我這里看看,順便給勤勞的博主點(diǎn)個(gè)贊也是好的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43241.html
摘要:將每一行作為返回,其中是每行中的列名。對(duì)于每一行,都會(huì)生成一個(gè)對(duì)象,其中包含和列中的值。它返回一個(gè)迭代器,是迭代結(jié)果都為的情況。深度解析至此全劇終。 簡(jiǎn)單實(shí)戰(zhàn) 大家好,我又來(lái)了,在經(jīng)過(guò)之前兩篇文章的介紹后相信大家對(duì)itertools的一些常見(jiàn)的好用的方法有了一個(gè)大致的了解,我自己在學(xué)完之后仿照別人的例子進(jìn)行了真實(shí)場(chǎng)景下的模擬練習(xí),今天和大家一起分享,有很多部分還可以優(yōu)化,希望有更好主意...
摘要:例如,以下對(duì)兩個(gè)的相應(yīng)元素求和這個(gè)例子很好的解釋了如何構(gòu)建中所謂的迭代器代數(shù)的函數(shù)的含義。為簡(jiǎn)單起見(jiàn),假設(shè)輸入的長(zhǎng)度可被整除。接受兩個(gè)參數(shù)一個(gè)可迭代的正整數(shù)最終會(huì)在中個(gè)元素的所有組合的元組上產(chǎn)生一個(gè)迭代器。 前言 大家好,今天想和大家分享一下我的itertools學(xué)習(xí)體驗(yàn)及心得,itertools是一個(gè)Python的自帶庫(kù),內(nèi)含多種非常實(shí)用的方法,我簡(jiǎn)單學(xué)習(xí)了一下,發(fā)現(xiàn)可以大大提升工作...
摘要:與上面的操作類似,可以使用多種運(yùn)算符和方法來(lái)更改集合的內(nèi)容。通過(guò)修改集合元素方法運(yùn)算符用法通過(guò)修改集合和作用是向集合中添加中所有不存在的元素。 Set是什么 大家好,恰逢初五迎財(cái)神,先預(yù)祝大家新年財(cái)源滾滾??!在上一期詳解tuple元組的用法后,今天我們來(lái)看Python里面最后一種常見(jiàn)的數(shù)據(jù)類型:集合(Set) 與dict類似,set也是一組key的集合,但不存儲(chǔ)value。由于key不...
摘要:什么是推導(dǎo)式大家好,今天為大家?guī)?lái)問(wèn)我最喜歡的推導(dǎo)式使用指南,讓我們先來(lái)看看定義推導(dǎo)式是的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。 什么是推導(dǎo)式 大家好,今天為大家?guī)?lái)問(wèn)我最喜歡的Python推導(dǎo)式使用指南,讓我們先來(lái)看看定義~ 推導(dǎo)式(comprehensions)是Python的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。...
閱讀 851·2019-08-30 15:55
閱讀 1421·2019-08-30 13:55
閱讀 2001·2019-08-29 17:13
閱讀 2853·2019-08-29 15:42
閱讀 1343·2019-08-26 14:04
閱讀 1030·2019-08-26 13:31
閱讀 3281·2019-08-26 11:34
閱讀 843·2019-08-23 18:25