[爆卦]python list for一行是什麼?優點缺點精華區懶人包

為什麼這篇python list for一行鄉民發文收入到精華區:因為在python list for一行這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者ptthidebear (= =)看板Python標題[問題] 一次比對list內所有值的方法?...



各位板上的先進大家好Orz

小弟最近在學python 語言

剛好碰到一個情況是

要在if的判斷句裡面去判斷list內所有的值是不是等於1

不過list內的個數可能會有變動 所以不能一個一個打出來比較

想請教各位板上的大大們

有沒有方法是可以在if判斷句內直接判斷list內值是不是等於某值的情況呢?

還是就只能另外寫一個function去判斷XD?


非常感謝各位大大們!!!


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.105.206
amulet5566:if 1 in List: pass 03/10 11:42
amulet5566:看錯題意了 抱歉 03/10 11:43
amulet5566:for i in List: if i != 1: print('QQ') 請自行換行 03/10 11:45
ptthidebear:我是想要在一行判斷式內解決,因為有全1與非全1的情況 03/10 12:35
juiz:import numpy as np; if (np.array(lst)==val).all(): blah 03/10 12:40
Holocaust123:if ( set(li) == set([1]) ): print 'all 1' 03/10 13:18
Holocaust123:if(len(filter(lambda x:x!=1, li) )==0): #all 1 03/10 13:21
Holocaust123:if(len([e for e in li if e!=1]==0)): #all 1 03/10 13:25
ptthidebear:感謝大大們提供的方式!!! 03/10 16:14

感謝樓上大大們提供的方式!!!



小弟還有一個問題是

假設list內是有分 [A, B, C, D]

我也是要一行內做判斷是不是都是1

只是判斷的不是A B C D

而是 A.status, B.status, C.status 和 D.status

這個要怎麼辦呢~"~?

該不會 if(len[e.status for e in list if e!=1]==0) 就好了吧XD?

感謝大大們的解答Orz

※ 編輯: ptthidebear 來自: 140.123.105.206 (03/10 16:20)
KSJ:不是… 03/10 17:52
KSJ:可參考 #1AuvTBRi 最後應該是 if e.status != 1 前面則沒差 03/10 17:56
ptthidebear:我耍蠢...Orz 謝謝KSJ大大! 03/11 08:48
tan2:if all(alist == 1): ... (since python 2.5) 03/12 11:34
tan2:if all(e.status==1 for e in alist): ... 03/12 11:37
Holocaust123:樓樓上應該是"if(all(i==1 for i in alist)):"吧? 03/12 22:18
Holocaust123:all()裡面的必須是iterable, alist==1並不是iterable 03/12 22:19
tan2:XD... 多謝樓上指正,我是numpy用太習慣了 03/15 08:42
apua:雖然方法不少,但就題意來說,用all是比較直覺且可讀 03/17 13:26
opiumeater:if all(li)==1:print 'all 1' 03/24 23:06

你可能也想看看

搜尋相關網站