给定一个名称(作为字符串)和一个包含两个名称(作为字符串)的集合的可迭代对象,返回一个新集合,该集合由与给定名称共享一个集合的名称组成。
例如:
itr = ({"a", "b"}, {"b", "c"}, {"c", "a"})
name = "a"
newset = {"b", "c"}
我正在寻找解决此问题的 pythonic 方法。这是我目前的困惑状况:
def friends(itr, name):
newset = []
for i in itr:
if name in i:
for j in i:
if j != name:
newset.append(j)
return set(newset)
如有任何帮助,我们将不胜感激。一般来说,我对 Python 和编程还比较陌生。谢谢
请您参考如下方法:
>>> set(e for s in itr for e in s if name in s) - set((name,))
set(['c', 'b'])
