摘要:而操作符描述的是,一個集合是否是另一個集合的真子集接受一個可迭代對象作為參數(shù),并且判斷這個可迭代對象的所有元素是否全部為。相應的,還有函數(shù),用來判斷是否存在一個。
問題
如何判斷一個list包含另一個list
例如我有兩個list
List1 = ["a","c","c"] List2 = ["x","b","a","x","c","y","c"]
如何判斷list2包含了list1
解決方案如果元素的數(shù)量不重要,也就是說只判斷list1里的所有種類在list2都有出現(xiàn)過,那么使用set()即可
>>> List1 = ["a","c","c"] >>> List2 = ["x","b","a","x","c","y","c"] >>> set(List1) < set(List2) True
如果元素的數(shù)量也需要考慮,即list1里的元素必須全部在list2里出現(xiàn)并且不重復,那么可以考慮使用Counter
from collections import Counter def counterSubset(list1, list2): counter1 = Counter(list1) counter2 = Counter(list2) for k, v in counter1.items(): if v > counter2[k]: return False return True List1 = ["a", "c", "c"] List2 = ["x", "b", "a", "x", "c", "y", "c"] print(counterSubset(List1, List2))
我們還可以使用all()來簡化代碼
>>> from collections import Counter >>> List1 = ["a", "c", "c"] >>> List2 = ["x", "b", "a", "x", "c", "y", "c"] >>> counter1 = Counter(List1) >>> counter2 = Counter(List2) >>> print(all(v <= counter2[k] for k, v in counter1.items())) True討論
對于set類型,Python提供了一些操作符來描述兩個集合的關系(包含、真包含等等)。而<操作符描述的是,一個集合是否是另一個集合的真子集
all()接受一個可迭代對象作為參數(shù),并且判斷這個可迭代對象的所有元素是否全部為True。相應的,還有any() 函數(shù),用來判斷是否存在一個True。
來源Stack Overflow
關注歡迎關注我的微信公眾號:python每日一練
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/41710.html
摘要:問題在每日一練中介紹了如何一個可迭代對象,使用運算符即可但往往我們遇到的問題是可迭代對象中的數(shù)量是不確定的這個時候該如何拿到我們想要的元素,比如我們只需要可迭代對象的第一個或者最后一個元素而已解決方案使用中的運算符例如我們需要拿到一個元組的 問題 在每日一練0001中介紹了如何unpack一個可迭代對象,使用,運算符即可 但往往我們遇到的問題是可迭代對象中的數(shù)量是不確定的 這個時候該如...
摘要:問題如何序列化輸出元素包含字符串元組的字符串元組好繞舉個例子將輸出為解決方案容易想到使用函數(shù),但函數(shù)要求元素必須都是字符串類型,否則會拋出錯誤一個比較簡單的方法是將給進中,然后再將給進函數(shù),最后指定函數(shù)的參數(shù)來輸出如果想要將結果存儲起來,那 問題 如何序列化輸出元素包含字符串元組的字符串元組(好繞) 舉個例子 >>> zoo1 = (monkey, elephant) >>> zoo2...
摘要:問題如何執(zhí)行外部命令,如解決方案使用庫在之前,使用函數(shù)在及之后,使用函數(shù)討論命令的執(zhí)行默認不需要環(huán)境,所以當你使用作為參數(shù)時,需要將置位,否則會報錯誤通常來說對于執(zhí)行系統(tǒng)命令,我們會想到,但在官方文檔中已經(jīng)建議了使 問題 如何執(zhí)行外部命令,如ls -l 解決方案 使用subprocess庫 在Python 3.5之前,使用subprocess.call()函數(shù) >>> import s...
摘要:問題如何判斷一個文件是否存在解決方案這個問題可以分成幾類問題如果這里的文件指的是文件或目錄,我們可以用方法如果這里的文件指的是普通的文件,我們可以用方法如果這里的文件指的是目錄,我們可以用方法并且在之后,可以使用面向?qū)ο蟮姆椒ㄊ褂脦靵砼袛啵? 問題 如何判斷一個文件是否存在 解決方案 這個問題可以分成幾類問題 如果這里的文件指的是文件或目錄,我們可以用os.path.exists()方法...
摘要:問題你需要執(zhí)行簡單的日期操作,計算兩個日期間隔多少天某個日期后的多少天是幾月幾日轉換時間字符串的格式等解決方案使用庫中的和類其中類代表一個日期時間,例如年月日點分秒類代表一個日期間隔對于實例,可以直接進行數(shù)學運算得到一個實例,也就是兩個日 問題 你需要執(zhí)行簡單的日期操作,計算兩個日期間隔多少天、某個日期后的多少天是幾月幾日、轉換時間字符串的格式等 解決方案 使用datetime庫中的d...
閱讀 2041·2021-11-19 11:37
閱讀 730·2021-11-11 16:54
閱讀 1180·2021-11-02 14:44
閱讀 3080·2021-09-02 15:40
閱讀 2384·2019-08-30 15:44
閱讀 971·2019-08-29 11:17
閱讀 1074·2019-08-26 14:06
閱讀 1568·2019-08-26 13:47