【发布时间】:2015-08-15 21:13:25
【问题描述】:
我是一名编程新手,正在学习 Torbjoern Lager 的 46 个简单 Python 练习。这是数字 10:定义一个函数重叠(),它接受两个列表,如果它们至少有一个共同成员,则返回 True,否则返回 False。您可以使用 is_member() 函数或 in 运算符,但为了练习,您应该(也)使用两个嵌套的 for 循环来编写它。
def over(list1,list2):
for i in list1:
for j in list2:
return i==j
我认为我有一个不错的简单解决方案,但它无法识别列表重叠,除非重叠元素是第一个元素。
over(["a","b","c","d"],["e","f","a","h"])
返回假
over(["a","b","c","d"],["a","f","g","h"])
返回真
由于某种原因,它没有搜索所有组合。任何帮助将不胜感激。
【问题讨论】:
-
提示:
return停止你的函数。 -
作者忘记了 if 语句,需要在 List 之间进行比较。这个练习的一个变体....它返回一个列表,其中只包含两个列表之间共有的元素。 def overlay(): a = raw_input("请给出数字或单词的列表:").split() b = raw_input("请给出数字或单词的列表:").split() the_common = list(set (a).intersection(b)) # 交集方法在一个新的 List 中返回共同的元素。打印 the_common 重叠()