python - 在Python中按索引从字符串中删除多个元素
问题描述
我有一个字符串和该字符串中每个位置的相关分数列表。如何删除低于某个阈值的该字符串的所有元素?
我可以创建使用列表中介的解决方法,并且我已经看到了一次解决这个问题的一个元素的答案,但是我还没有看到任何可以直接按位置删除多个元素的东西。一次执行此操作的主要问题是会改变剩余元素的位置。
>>> import string
>>> import numpy as np
>>> sequence = ''.join(np.random.choice(list(string.ascii_uppercase), 10))
>>> sequence
'BQJVESXZBW'
>>> scores = np.random.uniform(size=10)
>>> scores
[0.99023134, 0.21286886, 0.10760723, 0.50485956, 0.207736, 0.76909266, 0.62174588, 0.89416775, 0.60837875, 0.32754857]
>>> threshhold = 0.50
输出应该删除第二个、第三个、第五个和第十个元素,留下'BVSXZB'
解决方案
这是一种方法:
In [11]: scores
Out[11]:
array([0.00397126, 0.88897497, 0.06103467, 0.27202612, 0.50436342,
0.09516024, 0.92886696, 0.24499752, 0.40425165, 0.90589889])
In [12]: ''.join(ch for (ch, score) in zip(sequence, scores) if score >= threshold)
Out[12]: 'BFHC'
推荐阅读
- android - 用字符串在正文上改造帖子请求
- php - php 脚本的输出如何成为包含脚本的 URL 的资源
- java - 指向外部文档的 Javadoc 链接不起作用
- python - 在 Python 中读取以 .rds 格式从 R 导出的“sf”空间数据集
- python - 使用 PySide2.QtSql.QSqlRelationalTableModel()
- java - 如何使用其他 SpringBoot 项目的注解
- excel - 在单元格中输入特定值时删除列(在另一个选项卡中)
- python - 将数字特征转换为分类特征
- rpa - 我可以使用 RPA Automation Anywhere 删除多封电子邮件吗
- python - 如何在 django 模板中以相同的方式实现或循环这些博客文章布局?