python - 从给定列表中查找包含 int 值的缺失字符串
问题描述
给定一个字符串列表,比如说mystr= ["State0", "State1", "State2", "State5", "State8"]
。
我需要找到失踪的州(这里"State3", "State4", "State6", "State7"
)。有没有可能找到它?
期望的输出: mylist = ["State3", "State4", "State6", "State7"]
解决方案
假设可能不知道列表中的最大数字,一种方法是提取每个字符串中的数字部分,将set.difference
arange
取到最大值并使用列表推导创建一个新列表:
import re
ints = [int(re.search(r'\d+', i).group(0)) for i in mystr]
# [0, 1, 2, 5, 8]
missing = set(range(max(ints))) - set(ints)
# {3, 4, 6, 7}
[f'State{i}' for i in missing]
# ['State3', 'State4', 'State6', 'State7']
推荐阅读
- jmeter - BeanShell 脚本作为后处理器
- android - 在回收站视图中搜索
- windows - 如何打印到控制台窗口?
- laravel-5 - Tymon JWTAUTH 从令牌中排除路由
- angular - Firebase 上的 Angular2 托管
- javascript - 为什么当我尝试打印网页时,每个打印页面中的广告内容都没有重复?
- node.js - nodejs:身份验证期间出现“req.session.save 不是函数”错误
- javascript - 在 React 中单击按钮时需要多次创建卡片组件
- protocols - protobuf 实现未使用的字节(用于限制器实现)
- sql - 错误 1064 你在 Mysql bench 语法中有错误