簡體   English   中英

我可以循環遍歷python中的邏輯運算符嗎?

[英]Can I loop through logical operators in python?

為了避免重復,我想做這樣的事情:

a, b = True, False
l = list()
for op in [and, or, xor]:
    l.append(a op b)

我嘗試了import operatoritertools ,但它們不包含邏輯運算符,只包含數學和其他一些運算符。

我找不到任何有用的先前答案!

您的示例可以使用operator模塊來實現。

from operator import and_, or_, xor

ops = [and_, or_, xor]
l = [op(a,b) for op in ops]

這些是按位運算符,但對於僅用一位表示的布爾值而言,它們兼作邏輯運算符。

orand不能真正被函數復制,因為它們是短路的; 但如果你不在乎,你可以編寫 lambda 函數,例如lamba x, y: x and y 對於布爾值的異或,您可以使用operator.ne

ops = [(lambda x,y: x and y), (lambda x,y: x or y), operator.ne]
l = [op(a,b) for op in ops]

Adrian W 在評論中建議使用列表理解。

更新:使用stfwn 的回答 更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM