#numnote.py
創(chuàng)新互聯(lián)公司是一家專業(yè)提供花都企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為花都眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
def?numnote(lst):
msg=[?]
for?num?in?lst:
if?num0:
s=str(num)+'?is?negative'
elif?0=num=9:
s=str(num)+'?is?a?digit'
else:
continue
msg.append(s)
return?msg
這個(gè)應(yīng)該是書上有問題吧。
加一個(gè)?else:?continue??就ok了
在python中可以使用in符號判斷指定的元素是否存在于列表中,但我發(fā)現(xiàn)元組和數(shù)組存在區(qū)別,下面是詳細(xì)實(shí)驗(yàn)結(jié)果。
'test'
in
['replace','test']
True
'test'
in
('replace','test')
True
'test'
in
['test/codes','replace']
False
'test'
in
('test/codes','replace')
False
'test'
in
['test/codes']
False
'test'
in
('test/codes')
True
前面5條測試都符合我們的預(yù)期,只有最后一條,將數(shù)組換成元組后,在元組中只有一個(gè)元素的時(shí)候,python居然是把元組當(dāng)成了字符串處理,不知道為什么會有這樣的處理方式,但開發(fā)的時(shí)候卻要注意,只用in語句判斷數(shù)組中是否存在制定元素時(shí),最好用[]的數(shù)組,而非元組
1、創(chuàng)建python文件,文件名為:testlistadd.py;
2、編寫代碼,在原有l(wèi)ist的每個(gè)元素前面加上字符‘1’;
old_list?=?['a','b','c','d']
new_list?=?['1'+x?for?x?in?old_list]
print(new_list)
3、在窗口中右擊,并選擇‘在終端中運(yùn)行Python文件’選項(xiàng),執(zhí)行python代碼;
4、在‘終端’窗口中,查看執(zhí)行結(jié)果,可以發(fā)現(xiàn)滿足所需,即在所有元素前面都加了字符串‘1’。
我很理解你的疑惑,我相信這個(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í)測通過):
```
#?二維數(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)能看見,將就著看吧。
in 在python中的使用很常見,用處也很多,很強(qiáng)大,這里記錄下幾種常見的用法。
def?list_add(a):
c?=?0
for?i?in?range(len(a)):
c?=?c?+?a[i]
return?c
名稱欄目:python列表in函數(shù),python in 列表
網(wǎng)頁網(wǎng)址:http://www.yijiale78.com/article14/dschige.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站排名、全網(wǎng)營銷推廣、品牌網(wǎng)站設(shè)計(jì)、建站公司、定制網(wǎng)站
聲明:本網(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)