因此,对于家庭作业,我们被要求编写一个函数,该函数将2个列表作为输入,并使用顺序/线性搜索来完成它们,如果两个列表中都出现任何名称,则将该名称附加到新列表中。对于实际赋值,两个类被指定为VoterList和VoterName,因此不允许我们使用'in',并且只有VoterNames可以附加到VoterList。 (这项任务将发展为寻找在两个不同投票站投票两次的人选。)
所以我编写了一个函数,当我传入3-4个人的长列表时似乎有效,但我不确定它实际上是一个顺序搜索工作应该如何。一些建议会很棒。干杯
def fraud_detect_seq(first_booth_voters, second_booth_voters):
fraud = []
length_first = len(first_booth_voters)
length_second = len(second_booth_voters)
first_booth_position = 0
second_booth_position = 0
while first_booth_position < length_first:
name_comparison = first_booth_voters[first_booth_position]
if second_booth_position == length_second:
first_booth_position += 1
second_booth_position = 0
elif second_booth_voters[second_booth_position] == name_comparison:
fraud.append(second_booth_voters[second_booth_position])
first_booth_position += 1
second_booth_position += 1
elif second_booth_voters[second_booth_position] != name_comparison:
second_booth_position += 1
print(fraud)
fraud_detect_seq(['Jackson', 'Dylan', 'Alice'],['Jackson', 'ylan', 'Alice'])
获取输出:
['Jackson', 'Alice']
哪个是对的。但我觉得我做得不对。
答案 0 :(得分:0)
def fraud_detect_seq(first_booth_voters, second_booth_voters):
fraud = []
for voter in first_booth_voters:
if voter in second_booth_voters:
fraud.append(voter)
这是检查它们是否在两个列表中的一种非常简单的方法。编写程序没有错误的方法,但由于你使用的是python,你可能也是最好的&#34; pythonic&#34;。 for循环在python中非常有用,用于检查列表中的成员资格。