python - 如何从列表中找到丢失的号码?
问题描述
我打破了列表中的缺失值。以及附加在这个问题中如何从列表中找到丢失的号码?
如下所述,它如何在列表范围的总和中包含缺失值?
a=[1,2,3,4,5,7,8,9,10]
sum(xrange(a[0],a[-1]+1)) - sum(a)
结果:6
解决方案
它尽可能简单。
尝试分解它,它会更容易理解:
- xrange为您提供了一个生成器,该生成器最终将为您提供两个数字之间的整数作为此函数的参数。所以 xrange(4,9) 会给你 (4,5,6,7,8)。所以主要的收获是这里的 xrange 给出了从 4 到 9 的整数(包括 4 和不包括 9)
- 现在sum函数只是将给定对象中的值相加(这里是列表);我相信这里没有更多解释
- 因此,在您的情况下, xrange(a[0],a[-1]+1) 生成了一个生成器,该生成器从 a[0] 即 1 到不包括 a[-1]+1 即 11 给出值。记住,在 Python 中,负索引是从后向引用。所以 a[-1] 表示列表 a 中的最后一项。类似地 a[-2]=9。
- 所以现在我们得到了一个从 1 到 10 的所有数字的列表,并且 sum 给出了 55,并且 a 本身的总和等于 49(因为它不包括 6),所以不同的是你的缺失值。
注意 - 此代码的一个问题是,如果缺少 1 个以上的数字,它将导致这些缺失值的总和,而不是缺失值。所以如果 a=[1,2,3,5,8,9,10],那么这段代码会变成:
sum(1,2,3,4,5,6,7,8,9,10)-sum(1,2,3,5,8,9,10) and that will be equal to 17
在旁注中 - xrange 已从 Python 3 中弃用,我 90% 确信这个问题将被标记为不好的问题。
推荐阅读
- powershell - 如何更改 xml 中的 xml:lang 属性值?
- python - 如何根据mysql结果数据在python中使用条件打印数据
- vba - 如果值小于另一个单元格值,则清除 Excel 单元格
- java - 在同一类文件中的第二个@test 方法中使用数据提供程序未成功运行
- python - 使用 Python 将 Excel 数据插入 Postgres
- java - 本机库发出启动进程命令
- r - list.files 函数中的时间模式 (R)
- ios - 命中测试以确定哪个 CGPoint 最接近触摸 - 1 个 UIView 中的 16 个 CGPoint 点
- android - 如何通过向我的服务器发送值来获得结果
- twitter-bootstrap - Bootstrap 4卡行?