在我的家庭作业中真的被这个问题困住了。
一切正常,但是当 p 中有一个空格 (' ') 时。我需要停止创建 can 的过程。
例如,如果我提交:
rankedVote("21 4", [('AB', '132'), ('C D', ''), ('EFG', ''), ('HJ K', '2 1')])
我想要:
['C D', 'AB']
返回,而不是像现在这样返回[]。
代码如下:
def rankedVote(p,cs):
candsplit = zip(*cs)
cand = candsplit[0]
vote = list(p)
ppl = vote
can = list(p)
for i in range(len(vote)):
if ' ' in vote[i-1]:
return []
else:
vote[i] = int(vote[i])
can[vote[i]-1] = cand[i]
for i in range(len(vote)):
for j in range(len(vote)):
if i != j:
if vote[i] == vote[j]:
return []
return can
编辑:
在例子中:
rankedVote("21 4", [('AB', '132'), ('C D', ''), ('EFG', ''), ('HJ K', '2 1')])
这意味着第 1 个 AB 变成第 2 个, 第二个 C D 变成第一个, 它应该停止,因为 3rd 不存在。
假设不是 21 4,而是 2143。 这意味着第 3 个 EFG 将是第 4 个, 第 4 个 HJ K 将是第 3 个。
请您参考如下方法:
我会说,代码按照您的指示执行。看下面的代码块:
if ' ' in vote[i-1]:
return []
