Python 使用“";按位或;操作人员
基本上我有一个列表,其中每个元素都是一个序列,列表任意长。我想知道如何在列表中进行迭代,以便创建一个变量Python 使用“";按位或;操作人员,python,bitwise-operators,Python,Bitwise Operators,基本上我有一个列表,其中每个元素都是一个序列,列表任意长。我想知道如何在列表中进行迭代,以便创建一个变量matches=listerino[0]| listerino[1]|……|listerino[len(listerino)] 到目前为止,我最接近上述情况的是: matches = pd.Series() for t in range(0, len(listerino)-1, 2): x = listerino[t] | listerino[t+1] m
matches=listerino[0]| listerino[1]|……|listerino[len(listerino)]
到目前为止,我最接近上述情况的是:
matches = pd.Series()
for t in range(0, len(listerino)-1, 2):
x = listerino[t] | listerino[t+1]
matches = matches | x
但是,正如您可能看到的,对于偶数长度的列表,这只会按照我希望的方式工作,因为对于奇数长度的列表,它遗漏了最后一个元素。另外,我不得不混乱地定义匹配,首先等于一个空序列,然后附加到x上,有更好的方法吗
谢谢为什么不使用
|=
操作符
matches = None
for series in listerino:
# base case:
if matches is None:
matches = series
else:
matches |= series
这相当于
matches=matches | series
为什么不使用|=
操作符
matches = None
for series in listerino:
# base case:
if matches is None:
matches = series
else:
matches |= series
这相当于
matches=matches | series
您尝试执行的此操作通常称为“减少”,可以通过以下方法完成:
方便地定义了函数,该函数接受两个输入并返回
x | y
您尝试执行的此操作通常称为“还原”,可通过以下操作完成:
可以方便地定义函数,该函数接受两个输入并返回x | y