python - 使用字符串和数字从列表中获取值
问题描述
需要得到最接近的值
mylist=['A-B-10','A-B-20','A-B-50']
number=70
Output=A-B-50
最接近的两个值
Output=A-B-50,A-B-20
试过
min(range(len(mylist)), key = lambda i: abs(mylist[i]-number))
该列表是字符串,它不起作用。任何对此进行解码并在简单功能上使用的方法。
解决方案
要获得最接近的值,您需要从字符串中提取整数值:
out = min(mylist, key=lambda i: abs(int(i.split("-")[-1]) - number))
print(out)
印刷:
A-B-50
要获得两个最接近的数字:
val1 = min(mylist, key=lambda i: abs(int(i.split("-")[-1]) - number))
mylist.remove(val1)
val2 = min(mylist, key=lambda i: abs(int(i.split("-")[-1]) - number))
print(val1, val2)
印刷:
A-B-50 A-B-20
推荐阅读
- java - 有没有一种简单的方法可以使用 java 的 Graphics2D 对象逐个字符地淡入字符串字符?
- c# - C# & MongoDb 2.0 - NearSphere 问题
- javascript - Mathjax 库有问题,库没有将输入转换为漂亮的表达式
- c# - Container.Resolve 有什么区别
() 和新视图()? - php - 将 srcset 添加到自动生成的 PHP 库中
- javascript - 删除一个
- 完全从视图标记
- c - 存储许多 for 循环的结果
- php - webapp调用脚本时加载模块失败,从cli运行时完美运行
- c - 用 scanf 分配指针的整数
- azure - How to Terraform assignment of Azure User Managed Identity to a storage account?