在Python中,我们可以对列表,元组,集合,字典等数据结构使用按位运算符吗?如果是这样,为什么?

问题描述

现在我知道这些数据结构中的数据必须是整数类型,这样才能可行,但是它将如何工作?

假设我有一个列表列表或其中包含元组的列表;结果看起来像什么,在逻辑上意味着什么?

list_a = [[1,34,24],[12,727,2]]
list_b =[[12,2]]

some_list = list_a & list_b
# what would the above list look like?

set_1 = {(2,3),(3,4),(4,5)}

set_2 = {(1,(2,5),(6,7),(1,0)}

some_set = set_1 | set2
# what would the above set look like?

我可以在结果数据结构上使用逻辑运算符吗?

if some_value in set1 | set2:
    # do something

解决方法

那些本身不是按位运算符。它们是 operator ,每种类型都可以自行定义将如何处理它们。 &|运算符分别映射到对象的__and__ and __or__ methods。设置为这些(intersection and union respectively)定义操作,同时列出do not。列表虽然为+定义了一个操作(列表串联)。

Sooo…set_1 | set_2的结果是:

{(2,3),(6,7),(4,5),(3,4),(1,0),(2,3)}

对于其余的问题:Mu