Python如何移除列表字符串元素引号 实现彩票号码列表正确等值比对
Python列表等值比对问题解决方案
你遇到的比对失败本质是Python中不同类型的同字面量不会判定为相等:1 == '1'返回结果为False,只要将两个列表的元素统一为相同类型后再比对即可得到正确结果,两种常用实现方式如下:
方案1:转换用户输入的字符串列表为整数类型
适用于可以确认用户输入全为合法数字的场景:
winning_num = [1, 2, 4, 3] guessed_num = ['1', '2', '4', '3'] # 列表推导式批量转换元素类型 converted_guessed = [int(item) for item in guessed_num] print(converted_guessed == winning_num) # 输出:True
方案2:统一转换为字符串类型比对(容错性更高)
不需要处理非法输入的转换异常,推荐使用:
winning_num = [1, 2, 4, 3] guessed_num = ['1', '2', '4', '3'] converted_winning = [str(item) for item in winning_num] print(converted_winning == guessed_num) # 输出:True
封装为可直接调用的函数
def check_lottery_result(winning_num: list[int], guessed_num: list[str]) -> bool: # 统一转字符串比对,兼容异常输入场景 return [str(num) for num in winning_num] == guessed_num # 调用示例 result = check_lottery_result([1,2,4,3], ['1','2','4','3']) print(result) # 输出:True
内容的提问来源于stack exchange,提问作者equinox_xy
相关产品推荐
相关产品推荐

