python - 检测数字中的重复项(Python)
问题描述
我目前正在从事一个小项目,该项目涉及分析选票并根据他们获得的票数确定获胜候选人。投票系统很不寻常。例如,如果有四个候选人,投票可能如下所示:2341(第一个候选人 2 个,第二个候选人 3 个,等等)。但是,如果投票看起来像这样: 2334 它是无效的,相同的数字不能在投票中使用两次。我想知道是否有办法检查数字中的重复数字。我已经有了一个解决方案,但是它不适用于我的所有测试用例。
当前代码:
voteListString = ['2314', '4432', '4312', '1243', '1234', '2431'] # 4432 should get removed (it doesn't)
for i, voteString in enumerate(voteListString):
newI = i+1
duplicateCheck = voteString.count(f"{newI}")
if duplicateCheck > 1:
voteInt = int(voteString)
voteList.remove(f"{voteInt}")
spoiltBallots += 1
else:
validVoteList.append(voteString)
上面的代码是一个 for 循环,它遍历已转换为字符串的投票列表。然后它会计算“i”在投票中出现的次数,如果出现多次,它将从列表中删除。这仅适用于我的一个测试用例。如果有更好的方法可以做到这一点,我将非常感谢您的帮助。提前致谢。
解决方案
利用set
def is_valid(vote):
return len(set(vote)) == len(vote)
print(is_valid('4432')) # False
print(is_valid('1234')) # True
voteListString = ['2314', '4432', '4312', '1243', '1234', '2431']
new_vote_list_string = list(filter(is_valid, voteListString))
print(new_vote_list_string)
['2314', '4312', '1243', '1234', '2431']
推荐阅读
- php - Laravel 中的收藏夹功能问题
- highcharts - 柱形图 Highcharts 中的相同索引
- reactjs - 如何强制标签在 safari 和 firefox 中工作
- java - Handle Response Kotlin Retrofit
- radius - peach-3.1.124-win-x64-release 中缺少 RawEthernetPublisher?
- javascript - 无法绑定到“highlight”,因为它不是“code”的已知属性
- ios - 为什么ios tableview中内容视图的子视图不尊重自动布局约束
- node.js - Forge生成的证书中的签名和解码
- machine-learning - 何时在机器学习中执行规范化或标准化?
- r - 如何在闪亮的应用程序中获取响应式 data.frame