我会尽量保持这一点。我正在研究一个小程序,它有一个未知数量的参数传递给它。该函数应返回输入的所有参数的按位'和'。处理它的最佳方法是什么?到目前为止,这就是我所拥有的:
def foo(*args):
return args_0 & args_1 & ... args_n
foo(a, b)
# return a & b
foo(a, b, c)
# return a & b & c
道歉,如果其中任何一个根本不清楚,或者是否有一些明显我遗漏的东西;我仍在努力学习如何编程。
答案 0 :(得分:4)
您可以使用*args
在功能中接收未知数量的参数,然后使用reduce
的参数使用operator.and_
找到 BITWISE AND :
from operator import and_
from functools import reduce # `reduce` is available with `functools`
# package since Python 3.x
def foo(*args):
return reduce(and_, args)
注意:在旧版本的Python中,reduce
可用作内置函数。
答案 1 :(得分:1)
ID | NAME | Desc1 | Desc2 | Desc3 | Desc4 | Desc5 | Desc6
A A Value1 Value2
B B Value1
C C Value1 Value2 Value3
D D Value1 Value2 Value3 Value4 Value5 Value6
transform max([Description])
select ID, [Description]
from TableName
Group ID
Pivot [Description]
在列表中的所有对上调用from functools import reduce
def bitwise_and(*args):
return reduce(lambda x, y: x & y, args)
表达式(reduce
),从而减少它们,直到只剩下一个结果。