【发布时间】:2015-07-10 20:05:05
【问题描述】:
我正在尝试做的是询问用户一个名字,然后使用集合和键找出一个人在多少个俱乐部。我还是字典和集合的新手,所以我对如何去做这件事有点困惑。到目前为止,我有这个,但它不起作用并给我一个错误:
clubs = {'WSA': set(['Maria', 'Kennedy']), 'Reds': set(['Simon', 'Yamamoto']), 'Hikes': set(['Maria']), 'UVD': set(['Silver', 'Hasamov']) }
def member():
name = raw_input('Name ==> ')
i = 0
memset = set([])
nomemset = set([])
while i <= len(clubs.keys()):
for club in clubs:
if clubs[clubs.keys()[i]][i] == clubs[clubs.keys()[i+1]][i]:
memset.add(clubs.keys()[i])
memset.add(clubs.keys()[i+1])
else:
nomemset.add(clubs.keys()[i])
nomemset.add(clubs.keys()[i+1])
print 'Member of: ', memset
print 'Not member of: ', nomemset
member()
示例输出如下:
Name ==> Maria
Member of: set(['WSA', 'Hikes'])
Not member of: set(['Reds', 'UVD'])
感谢任何帮助!
【问题讨论】:
-
你得到的错误是什么?
-
在我看来它会无限循环,因为你永远不会改变
i。我不确定你想通过比较clubs.keys()的连续元素来做什么 - @RafaelCardoso 的完全重写看起来对我来说是正确的。
标签: python function dictionary set key