首页 > 解决方案 > Python 字符串和变量格式验证

问题描述

我有一个清单:

data = ["data 01", "data 02", "data 03"]

我想检查列表中的每个元素是否包含字符串“数据”,并将数据后面的文本(例如 01、02、03)添加到另一个列表中。下面是我的代码,但我发现它效率低下。

data_2 = []

for item in data:
    if ("data" in item):
        data_2.append(item.replace("data", "").strip())

有没有办法检查

if item == "data {}"

其中 {} 是一个数值变量。作为预防措施,在数据列表中有一个项目,如 ["no data"],其中字符串 "no" 被错误地添加了?

标签: pythonstringlistalgorithmvalidation

解决方案


您可以使用列表推导:

data = ["data 01", "data 02", "data 03"]
d = [s.split('data ',1)[1] for s in data if 'data' in s and s.split('data ',1)[1].isdigit()]
print(d)

输出:

['01', '02', '03']

推荐阅读