AI技术百科
tianjing2020
2021-12-26 09:41:45
2.16、Python找出丢失的数
有一个包含 1 到 100,一共 100 整数的列表 list,但是顺序已经被打乱,现在随机丢掉一个值,请计算出被扔掉的数的值。
1. 直接的解法
依次查看 1 到 100 哪些数没有在输入的列表中。代码如下:
格式化复制
import random # 引入伪随机数模块 def find_missing_num(list): # 查找丢失的数 for candidate in range(1, 101): # 对所有的数,查看是否在结果队列中 if candidate not in list: # 如果不在结果队列中,那么它就是丢失的数 return candidate # 返回该丢失的数 return None # 如果没有找到,返回None def test(): # 测试代码 list_a = range(1, 101) # 得到100个数 random.shuffle(list_a) # 打乱顺序 drop_val = list_a.pop(49) # 丢掉一个数 print("The Dropped Item is %d" % drop_val) ret = find_missing_num(list_a) # 查找该丢失的数 print("Answer: %d" % ret) if __name__=='__main__': # 如果是脚本运行而不是import,那么执行测试代码 test()
运行结果:
$ python listdemo3.py
The Dropped Item is 77
Answer: 77
$ python listdemo3.py
The Dropped Item is 97
Answer: 97
2. 求和的方法
求出列表中所有元素的和 s,假定丢掉的元素为 x,那么 s+x=1+2+3+…+100。这样可以求出 x 的值来。代码如下:
import random # 引入随机库 def find_missing_num(list): expected_sum = ( (1 + 100) * 100) / 2 real_sum = sum(list) return (expected_sum - real_sum) def test(): list_a = range(1, 101) random.shuffle(list_a) drop_val = list_a.pop(49) print("The Dropped Item is %d" % drop_val) ret = find_missing_num(list_a) print("Answer: %d" % ret) if __name__=='__main__': test()
运行结果:
$ python listdemo4.py
The Item is 87
Missing Number = 87
$ python listdemo4.py
The Dropped Item is 79
Answer: 79
26
条内容
Python基本数据类型一共26个章节
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。