【发布时间】:2016-01-30 23:50:56
【问题描述】:
编辑:这是一个明确地关于列表和函数的学习练习。因此不允许将列表转换为集合。
我需要编写一个函数def sameSet(a,b) 来检查两个列表是否按某种顺序具有相同的元素,忽略重复项。例如,两个列表 [1, 4, 9, 16, 9, 7, 4, 9, 11] 和 [11, 11, 7, 9, 16, 4, 1] 将被视为相等。
这就是我所做的。我首先定义了一个辅助函数def contained(list1, list2),它检查列表1 是否包含在列表2 中,只要列表1 的元素在列表2 中,就增加一个计数器。最后,如果计数器等于列表1 的长度,我将布尔变量 same 设置为 True,因为这意味着列表 1 中的每个元素也在列表 2 中。
def main():
list1 = [1, 4, 9, 16, 9, 7, 4, 9, 11, 11]
list2 = [11, 11, 7, 9, 16, 4, 1]
def sameSet(list1, list2):
contained(list1, list2)
contained(list2, list1)
def contained(list1, list2):
same = False
count = 0
for element in list1:
if element in list2:
count = count + 1
else:
count = count
if count == len(list1):
same = True
return same
main()
我不确定要为函数sameSet 写什么。我希望它检查布尔变量same 是否设置为True 用于两个包含(即如果list1 在list2 中,如果list2 在list1 中,意味着它们是相等的)。但我不知道如何在 Python 中实现这一点,以便程序正常工作。任何帮助将不胜感激。
【问题讨论】:
标签: python