我很理解你的疑惑,我相信這個(gè)對任何一個(gè)第一次接觸到這種寫法的人都有疑惑,不過我已經(jīng)明白它的執(zhí)行順序,其實(shí)最容易明白的就是寫一個(gè)等效寫法,“a in b for b in c”的寫法跟“x for x in y”的寫法并沒有本質(zhì)上的區(qū)別,只不過前者輸出的b又作為“in”的參數(shù)繼續(xù)運(yùn)算一次而已(同理它還可以是其它運(yùn)算,未必是a in b,只不過現(xiàn)在它是一個(gè)列表,如果c是一維的列表,那循環(huán)一次出來的b就是單個(gè)元素,假設(shè)它是數(shù)字,那就可以執(zhí)行比如b+1 for b in c這種操作),這種一般都用于生成一個(gè)列表,說再多不如舉個(gè)例子(以下例子皆為實(shí)測通過):
成都創(chuàng)新互聯(lián)專注于玉屏企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城開發(fā)。玉屏網(wǎng)站建設(shè)公司,為玉屏等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
```
#?二維數(shù)組(在python中這個(gè)叫列表)
c?=?[[7,?8,?9],?[1,?2,?3],?[4,?5,?6]]
#?簡易寫法,結(jié)果:?[7,?8,?9,?1,?2,?3,?4,?5,?6]
l1?=?[a?for?b?in?c?for?a?in?b]
print(l1)
#?常規(guī)寫法(相當(dāng)于上邊的簡易寫法),結(jié)果:?[7,?8,?9,?1,?2,?3,?4,?5,?6]
l2?=?[]
for?b?in?c:
for?a?in?b:
l2.append(a)
print(l2)
#?上述的a還可以作為參數(shù)繼續(xù)傳入其它函數(shù)或在表達(dá)式中使用,比如作為in的參數(shù),結(jié)果:?[False,?True,?False]
#?解釋一下執(zhí)行順序:先執(zhí)行for?in,循環(huán)一次就出來一個(gè)b,然后再執(zhí)行num?in?b,num?in?b的結(jié)果(True/False)作為列表的
#?一個(gè)元素,至此一個(gè)循環(huán)結(jié)束,然后又開始下一個(gè)for?in循環(huán),直到所有元素循環(huán)完,最后產(chǎn)生一個(gè)元素值為True/False組成的列表!
num?=?3
l3?=?[num?in?b?for?b?in?c]
print(l3)
#?上面寫法相當(dāng)于
l4?=?[]
for?b?in?c:
l4.append(num?in?b)
print(l4)
#?a在表達(dá)式中參與表達(dá)式運(yùn)算
#?結(jié)果:[8,?9,?10,?2,?3,?4,?5,?6,?7]
l5?=?[a+1?for?b?in?c?for?a?in?b]
print(l5)
#?該寫法是上述寫法的常規(guī)寫法
l6?=?[]
for?b?in?c:
for?a?in?b:
l6.append(a+1)
print(l6)
```
提交答案后,發(fā)現(xiàn)百度會把空格縮進(jìn)全都去掉,而縮進(jìn)作為python的靈魂,沒有了縮進(jìn)的python代碼根本沒辦法運(yùn)行,所以我給你截個(gè)圖,你復(fù)制代碼后自己去縮進(jìn)吧:
python的一種寫法:a in b for b in c
又一次修改答案,這次我要吐槽一下,不要來這里問關(guān)于代碼的問題,前面的代碼你也看到了,百度知道根本無法嵌入代碼,直接把代碼當(dāng)普通文本,空格縮進(jìn)全給你去掉,然后我想著,好,文本的空格被你去掉我上傳圖片總行了吧?結(jié)果,這圖片被壓縮的模糊不清,勉強(qiáng)能看見,將就著看吧。
內(nèi)置函數(shù),在python幫助文檔中:Build-in Functions
在Python提示符下,輸入下面語句,就會顯示Python提供的內(nèi)置函數(shù)列表
dir('__builtins__')
abs(_) 內(nèi)置函數(shù),絕對值或復(fù)數(shù)的模。
chr() 以單字節(jié)整數(shù)為參數(shù),返回一個(gè)單字符的字符串,其內(nèi)容是與之對于的ASCII字符。如chr(69)返回'E'。
cmp() 比較字符串,cmp('Xiao','Jian')返回1
coerce() (可以看成一個(gè)數(shù)值類型轉(zhuǎn)換函數(shù))有兩個(gè)參數(shù),都是數(shù)字,返回這兩個(gè)數(shù)字的一個(gè)列表,將這兩個(gè)數(shù)字的數(shù)據(jù)類型統(tǒng)一。如coerce(1,2j),返回(1+0j,2j)
complex() 內(nèi)置函數(shù),把……轉(zhuǎn)換成復(fù)數(shù),如complex('2')返回(2+0j),complex('2+3j')返回(2+3j)。
divmod() 內(nèi)置函數(shù),有兩個(gè)參數(shù),返回(商,余數(shù))。如divmod(10,2.5),返回(4.0,0.0)。
filter(function,list) 把函數(shù)應(yīng)用于list中的每一項(xiàng),并返回 從函數(shù)中返回真值的項(xiàng)。注:function可以為None,此時(shí)刪除list中的0或空項(xiàng)。
float() 內(nèi)置函數(shù),把……轉(zhuǎn)換成浮點(diǎn)數(shù)。
floor() 在math模塊內(nèi),需要import math。向下取整,即向x軸負(fù)方向取整。如math.floor(1.9)返回1,math.floor(-2.5)返回-3。
hash() 散列功能,詞典鍵的最精確功能需求是它一定是可散列的。對象的散列值是半唯一的、內(nèi)部生成的數(shù)字,它可用于快速比較。
int() 內(nèi)置函數(shù),把字符串或者小數(shù)轉(zhuǎn)換為一個(gè)整數(shù)。直接去掉小數(shù)部分。如int(5.3)返回5,int('5')返回5。
len(x) 序列x的長度
long() 內(nèi)置函數(shù),把數(shù)字 或 代表整數(shù)的字符串 轉(zhuǎn)換成長整型
map(function,list[,list,...])
max() 找出字符串中最大的字符。如:min('find the minimum character'),返回' ',即空格。
min() 找出字符串中最小的字符。如:max('find the maximum character'),返回'x'。
oct() 將十進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制,再變成字符。
ord() 參數(shù)是單個(gè)的ASCII字符,返回該ASCII字符對應(yīng)的整數(shù)值,如ord('a')返回97。
pow() 內(nèi)置函數(shù),乘方。如果有第三個(gè)參數(shù),則表示乘方的結(jié)果對第三參數(shù)取余,如pow(2,3)返回8,pow(2,3,4)返回0。
print 輸出到窗口
range() 生成一個(gè)向量,例如range(m,n,d),從m到n,步長為d;range(m)則生成0:m-1,步長為1的向量。
raw_input() 輸入函數(shù),參數(shù)為字符串,作為輸入時(shí)的提示語句。返回值為字符串。
reduce(func)
round() 內(nèi)置函數(shù),對數(shù)字進(jìn)行四舍五入,第二個(gè)參數(shù)表示精確到小數(shù)點(diǎn)后指定的位數(shù),默認(rèn)值為0。如round(2.4)返回2,round(1.398,2)返回1.40。
type() 返回某數(shù)據(jù)的類型
int()是Python的一個(gè)內(nèi)部函數(shù)
Python系統(tǒng)幫助里面是這么說的
[python] view plain copy
help(int)
Help?on?class?int?in?module?__builtin__:
class?int(object)
|??int(x[,?base])?-?integer
|
|??Convert?a?string?or?number?to?an?integer,?if?possible.??A?floating?point
|??argument?will?be?truncated?towards?zero?(this?does?not?include?a?string
|??representation?of?a?floating?point?number!)??When?converting?a?string,?use
|??the?optional?base.??It?is?an?error?to?supply?a?base?when?converting?a
|??non-string.??If?base?is?zero,?the?proper?base?is?guessed?based?on?the
|??string?content.??If?the?argument?is?outside?the?integer?range?a
|??long?object?will?be?returned?instead.
[python] view plain copy
int(12.0)
12
int()函數(shù)可以將一個(gè)數(shù)轉(zhuǎn)化為整數(shù)
[python] view plain copy
int('12',16)
18
這里有兩個(gè)地方要注意:1)12要以字符串的形式進(jìn)行輸入,如果是帶參數(shù)base的話
2)這里并不是將12轉(zhuǎn)換為16進(jìn)制的數(shù),而是說12就是一個(gè)16進(jìn)制的數(shù),int()函數(shù)將其用十進(jìn)制數(shù)表示,如下
[python] view plain copy
int('0xa',16)
10
int('10',8)
8?
in是包含關(guān)鍵詞,會返回一個(gè)bool函數(shù)(True或者False)。
用法:a in b,表示判斷a是否在b其中,如果存在則返回True,否則返回False。
例:
分享名稱:in函數(shù)python IN函數(shù)求導(dǎo)
文章地址:http://jinyejixie.com/article48/dosgihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站營銷、服務(wù)器托管、搜索引擎優(yōu)化、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)