python - 如何找到列表中最低数字的所有位置?(Python)
问题描述
下面的代码返回列表中第一个最小数字的位置。
xy = [50, 2, 34, 6, 4, 3, 1, 5, 2, 1, 10 ,1]
t=0
for i in range(len(xy)):
if xy[i]<xy[t]:
t=i
print(t)
out: 6
我想得到所有最低数字的位置。在这种情况下,它应该是 6、9、11。我如何在基础 Python 中进行操作?
解决方案
您可以使用 Python 的预定义min
函数来获取列表中的最小值,然后使用列表推导式获取等于该最小值的值的索引,如下所示:
xy = [50, 2, 34, 6, 4, 3, 1, 5, 2, 1, 10 ,1]
lowest = min(xy)
positions = [i for i, v in enumerate(xy) if v == lowest]
print(positions) # ==> [6, 9, 11]
推荐阅读
- facebook - 我们如何使用 chrome 扩展程序收集 facebook 组请求数据?
- mlt - 使用 MLT 生成包含滚动图像的视频
- ios - Xamarin iOS System.FormatException:输入字符串的格式不正确
- svn - 如何将文件更新为 SVN 上的头版本
- microsoft-teams - MS Teams 个人选项卡应用程序中可以有子选项卡/子菜单吗?
- android - 推出是不可点击的
- react-native - 在 react-navigation v5 中处理路由名称的最佳实践
- mysql - Mysql - 如何按列中的值对结果进行排序?
- postgis - 无法从地理服务器检索属性值
- php - 在 mySQL 中引入 JSON