python一条语句分析几个常用函数和概念
前言
過年也沒完全閑著,每天用一點點時間學點東西,本文為大家介紹幾個python操作的細節,包含all、any、for in等操作,以及介紹我解決問題的思路。
一、開篇
先從我看到的一個簡單的語句開始。
剛看到這個語句的時候我整個人完全懵住了,完全看不懂這是干啥的。不過其實編程難的不是這些東西,這些東西再也不怕,也能想辦法解決掉,而隱藏在這后面的編程思維及數學等知識是很難解決的。
1.1 any、all
言歸正傳,看到這個語句后,我想到的就是如何將復雜的問題簡單化。
于是我先查了一下any函數,查到any和all函數都是對于集合而言的。
描述
any() 函數用于判斷給定的可迭代參數 iterable 是否全部為空對象,如果都為空、0、false,則返回 False,如果不都為空、0、false,則返回 True。
函數等價于:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def any(iterable):for element in iterable:if element:return Truereturn FalsePython 2.5 以上版本可用。
語法
以下是 any() 方法的語法:
參數
iterable -- 元組或列表。返回值
如果都為空、0、false,則返回false,如果不都為空、0、false,則返回true。
描述
all() 函數用于判斷給定的可迭代參數 iterable 中的所有元素是否不為 0、’’、False 或者 iterable 為空,如果是返回 True,否則返回 False。
函數等價于:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def all(iterable):for element in iterable:if not element:return Falsereturn TruePython 2.5 以上版本可用。
語法
以下是 all() 方法的語法:
all(iterable)參數
iterable -- 元組或列表。返回值
如果iterable的所有元素不為0、’’、False或者iterable為空,all(iterable)返回True,否則返回False;
注意:空元組、空列表返回值為True,這里要特別注意。
簡單點說,any函數用于判斷給定的可迭代參數iterable是否全部為空對象,如果都為空、0、false中的一種(以下簡稱為空),則返回False,如果不都為空,則返回True;而all函數剛好相反,如果全不為空,則返回True,否則返回False。
1.2 for in
這就是說上面的語句any里面是一個iterable對象。我們再來看一下里面的語句:
for 循環語句
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
語法:
for循環的語法格式如下:
for iterating_var in sequence:statements(s)流程圖:
可以明顯的看到一個for,for in在python里面很明顯,簡單的說就是循環一個集合,并對此集合進行過濾、計算等操作。同樣先簡化它:
(word for word in ["拍照", "拍張照"])這很明顯,生成的集合與原來相同,但是平常我們看到的都是這樣的:
[word for word in ["拍照", "拍張照"]]這里面就牽涉到python生成器的概念。
1.3 生成器
生成器的優點在于不需要事先計算,只需要在需要的時候才會調用,不浪費存儲空間和計算時間。簡單的說生成器是一種特殊的集合,這種集合并不像普通的集合一樣事先全部算出,而是在需要的時候才去計算。其實實現方式很簡單,將[]換成()即可,于是就有了上面的語句。關于生成器的其他操作和生成方式可以在網上查閱相關資料,這里不再贅述。
1.4 繼續for in
接著上面的for in繼續介紹,(word for word in [“拍照”, “拍張照”])結果與原始數據相同,那么如果我們想要產生一點變化就要對第一個word執行一個函數,于是就有了word in text,這里的in就是個函數,判斷word是否是在text中,即word是否是text的子串,相當于其他語言的contain。
這樣就很清楚了,(word in text for word in [“拍照”, “拍張照”])表示循環原始集合,判斷每個元素是否是給定的text字符串的子串,返回的是個True、False集合。
當然我們也可以在循環的時候實現過濾,看如下語句:
(word for word in ["拍照", "拍張照"] if word in text)貌似這條語句跟上面的差別就在于word in text的位置發生了變化,并多了個if。其實二者差別非常大,這里實現的功能是判斷word是否是text的子串,如果是則取出,相當于過濾掉不是子串的對象,最終返回的是一個字符串集合。
1.5 總體
那么這里我們再來看一下最開始的語句:
綜合以上語句就可以知道此語句實現的是循環集合判斷每一個字符串是否是給定的text的子串,最終如果不全為空的話就返回True,即text只要包含集合中的任意一個字符串,則返回True。可以用于命令檢測等等場合。
二、總結
本文通過一個稍微復雜的語句,為大家介紹了python中幾個常用的函數和概念,并分析了由繁而簡的過程。
總結
以上是生活随笔為你收集整理的python一条语句分析几个常用函数和概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python编程核心内容 ---- Fu
- 下一篇: websocket python爬虫_p