类型错误:不支持的操作数类型(S)
问题描述:
这是我的代码:类型错误:不支持的操作数类型(S)
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'
答
取而代之的是:
phonebooks = ['phonebook1, phonebook2, phonebook3, phonebook4']
(这是一个包含单个字符串的列表,这个字符串中包含文本的事实恰恰是您创建的变量的名称并不意味着Python; Python是不是NSA,它不会看你的变量里面线索,你正在试图做什么)
你想这样的:
phonebooks = [phonebook1, phonebook2, phonebook3, phonebook4]
(即含有不同的参考名单套你已经定义)
对不起,我不知道你在这里试图达到什么。 –
也许你应该描述你的程序,告诉它应该做什么? –