如何根据Python中列的字符串前缀过滤嵌套列表

问题描述 投票:0回答:1

我的问题:

我想得到错过年龄的名字。对于下一个样本数据:

t = ([Mike, 12], [Alice, 20], [Bob, Missing_1], [Jack, Missing_2])

输出应该是:

Bob
Jack

我尝试了什么?

r=([l for l in t[1] if l='Missing*'])

它没有成功。通配符是否适用于Python?

python-3.x filter nested prefix
1个回答
0
投票

这应该工作:

print([e for e, age in t if isinstance(age, str) and 'missing' in age.lower()])

产量

['Bob', 'Jack']

如果输出必须是字符串,则可以将其更改为:

print(' '.join([e for e, age in t if isinstance(age, str) and 'missing' in age.lower()]))

产量

Bob Jack

'missing' in age.lower()检查'missing'是字符串age的一部分,之前我们检查age确实是isinstance(age, str)的字符串。如果缺失的值总是字符串,则只能使用isinstance(age, str)。请注意,此解决方案假定缺少的值是包含缺少单词的字符串。

另一种更符合您尝试的解决方案的是startswith函数,来自文档:

如果字符串以前缀开头,则返回True,否则返回False

print(' '.join([e for e, age in t if isinstance(age, str) and age.startswith('Missing')])

产量

Bob Jack
© www.soinside.com 2019 - 2024. All rights reserved.