当我练习python的一些问题时,有些东西我不明白 下面是我的代码
def solution(participant, completion):
answer = []
participant.sort()
completion.sort()
for i in range(len(completion)):
if participant[i]!=completion[i]:
answer.append(participant.pop(i))
return answer
return answer
solution(["leo", "kiki", "eden"],["eden", "kiki"])
solution(["marina", "josipa", "nikola", "vinko", "filipa"], ["josipa", "filipa", "marina", "nikola"])
我得从第一份名单中找出不在第二份名单中的名字。 很明显,我得用“leo”作为第一个词,用“vinko”作为第二个词。你知道吗
然而,每当我试图从participant附加元素时,它什么也没有添加 为什么会发生这种情况,你怎么解决它??你知道吗
首先,您不需要使用任何类型的排序,除非您当然希望结果按顺序排列。你知道吗
其次,有一种很好的方法可以使用“notin”检查元素是否不在列表中
希望这有帮助:)
存在重复名称时包含的解决方案。根据以下评论的要求:
因此,在上面我检查了每个列表中元素出现次数之间的计数差异,如果第一个列表大于第二个列表,那么它们一定比第一个列表中的元素多。另外,我要确保不会将重复项添加到结果列表中(不确定是否需要这样做)
您没有得到输出,因为您只对循环进行了2次迭代,因为完成列表的长度仅为2,并且您正在对分区和完成列表进行排序,所以前两个元素是相同的。因此它不会在if块中执行代码。 对于第二个调用也是一样,它只会迭代循环4次。你知道吗
使用set可以用最少的代码实现预期的结果。参考Tomothy32提供的解决方案
为什么不尝试在python中使用散列集来做一些更简单的事情呢。你知道吗
也可以通过普通列表来实现。你知道吗
相关问题 更多 >
编程相关推荐