我有一個列表,我正在循環使用「for」循環,並通過if語句在列表中運行每個值。我的問題是我只想讓程序做一些事情,如果列表中的所有值都通過了if語句,並且如果沒有通過,我希望它移動到列表中的下一個值。目前,如果列表中的單個項目通過if語句,它將返回一個值。任何想法讓我指出正確的方向?使用if語句遍歷列表
8
A
回答
9
Python爲您提供了大量的選項來處理這種情況。如果您有示例代碼,我們可以爲您縮小範圍。你可以看看
一種選擇是all
操作:
>>> all([1,2,3,4])
True
>>> all([1,2,3,False])
False
你也可以檢查過濾列表的長度:
>>> input = [1,2,3,4]
>>> tested = [i for i in input if i > 2]
>>> len(tested) == len(input)
False
如果您使用的是for
結構可以如果遇到負面測試,請儘早退出環路:
>>> def test(input):
... for i in input:
... if not i > 2:
... return False
... do_something_with_i(i)
... return True
上述test
函數將返回在這2或更低,例如第一個值false,而它會返回True只有當所有值均大於2
0
你通過你的整個列表需要循環,並檢查條件,然後再嘗試對數據做任何其他事情,所以你需要兩個循環(或者使用一些內置的循環,像all())。從這個鍵盤什麼也沒有太花哨,http://codepad.org/pKfT4Gdc
def my_condition(v):
return v % 2 == 0
def do_if_pass(l):
list_okay = True
for v in l:
if not my_condition(v):
list_okay = False
if list_okay:
print 'everything in list is okay, including',
for v in l:
print v,
print
else:
print 'not okay'
do_if_pass([1,2,3])
do_if_pass([2,4,6])
3
也許你可以嘗試用for ... else
聲明。
for item in my_list:
if not my_condition(item):
break # one item didn't complete the condition, get out of this loop
else:
# here we are if all items respect the condition
do_the_stuff(my_list)
0
如果您在嘗試遍歷它時刪除列表中的項目,則必須小心。
如果你不刪除,然後這是否幫助:
>>> yourlist=list("abcdefg")
>>> value_position_pairs=zip(yourlist,range(len(yourlist)))
>>> value_position_pairs
[('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6)]
>>> filterfunc=lambda x:x[0] in "adg"
>>> value_position_pairs=filter(filterfunc,value_position_pairs)
>>> value_position_pairs
[('a', 0), ('d', 3), ('g', 6)]
>>> yourlist[6]
'g'
現在如果value_position_pairs是空的,你就大功告成了。如果不是,您可以將i增加1以轉到下一個值,或者使用它們在數組中的位置迭代失敗的值。
相關問題
- 1. R - 用if語句遍歷行
- 2. VBA - 訪問03 - 遍歷列表框,用if語句評估
- 3. 循環遍歷列表,同時也使用if語句使用Python不工作
- 4. if/else語句使用lapply遍歷R中的數據框列表中的行
- 5. 使用if if語句檢查列表
- 6. 如何使用if/else語句遍歷sql結果數組?
- 7. 使用if語句進行列表
- 8. 在Python中使用if語句列表?
- 9. 遍歷列表使用JSON
- 10. MSSQL循環遍歷表的列表來執行alter語句
- 11. 列表if語句python 3
- 12. 列表視圖if語句
- 13. 遍歷列表
- 14. 遍歷列表
- 15. 遍歷列表
- 16. 遍歷列表
- 17. 遍歷列表
- 18. 是否可以手動遍歷嵌套的if語句?
- 19. JS - 遍歷數組併爲if語句添加新數字
- 20. For循環if語句不遍歷整個數組
- 21. Excel VB for循環沒有遍歷if語句
- 22. 「if」語句在使用數據驅動頁面時循環遍歷兩次
- 23. 使用if語句
- 24. 使用「if語句」
- 25. 使用if語句
- 26. 使用if語句
- 27. 使用if語句
- 28. 使用if語句
- 29. 蟒蛇3 if語句引用列表
- 30. rs.next循環遍歷所有值,我需要循環遍歷每個值並用if語句循環執行if語句
示例代碼總是幫助我們更好地幫助您。 – 2011-05-28 21:30:35
發佈您的代碼。 – GWW 2011-05-28 21:30:45
'sort'並與一個已知的src進行比較,但是正如其他人所說的那樣,發佈一些代碼以便我們可以確定您的列表的樣子! – 2011-05-28 21:34:21