类型错误:不支持的操作数类型

2024-09-24 22:26:39 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

def sync(phonebooks):
    res = set()

    for phonebook in phonebooks:
        res = res | phonebook
    return res

我键入以下内容来运行它:

>>> phonebook4 = {'234-56-78', '456-78-90'}
>>> phonebooks = ['phonebook1, phonebook2, phonebook3, phonebook4']
>>> sync(phonebooks)

这就是我得到的错误:

>>> sync(phonebooks)
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    sync(phonebooks)
  File "C:/Users/Pinakin/Desktop/finalnotes2.py", line 54, in sync
    res = res | phonebook
TypeError: unsupported operand type(s) for |: 'set' and 'str'

Tags: in密码for键入returndeflineres
1条回答
网友
1楼 · 发布于 2024-09-24 22:26:39

而不是这样:

phonebooks = ['phonebook1, phonebook2, phonebook3, phonebook4']

(这是一个包含单个字符串的列表,事实上这个字符串中的文本恰好是您创建的变量的名称,这对Python来说没有任何意义;Python不是NSA,它不会在您的变量内部寻找关于您试图做什么的线索)

你想要这个:

phonebooks = [phonebook1, phonebook2, phonebook3, phonebook4]

(这是一个包含对已定义的不同集合的引用的列表)

相关问题 更多 >