2016-03-14 152 views
-3

这是我的代码:类型错误:不支持的操作数类型(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' 
+0

对不起,我不知道你在这里试图达到什么。 –

+0

也许你应该描述你的程序,告诉它应该做什么? –

回答

0

取而代之的是:

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

(这是一个包含单个字符串的列表,这个字符串中包含文本的事实恰恰是您创建的变量的名称并不意味着Python; Python是不是NSA,它不会看你的变量里面线索,你正在试图做什么)

你想这样的:

phonebooks = [phonebook1, phonebook2, phonebook3, phonebook4] 

(即含有不同的参考名单套你已经定义)

相关问题