You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计列表中非数字、非字母数字类的唯一字符串数量?

解决方法拆解

没问题,我来帮你搞定这个需求!咱们一步步来实现:

步骤1:过滤出符合要求的字符串

首先得把那些不含数字的字符串挑出来——毕竟你要排除纯数字、字母数字混合的。我们可以检查每个字符串里有没有数字,只要没有数字的就保留:

lst = ['new car', '232', 'famous bike','232', 'new car', '232plane', 'new car', 'plane232']
# 过滤掉包含数字的字符串
filtered_strings = [s for s in lst if not any(char.isdigit() for char in s)]
# 此时filtered_strings的结果是:['new car', 'famous bike', 'new car', 'new car']

步骤2:提取每个有效字符串的最后一个单词

接下来从这些保留的字符串里提取你关心的核心词汇(比如'new car'里的'car','famous bike'里的'bike'),用split()分割字符串后取最后一个元素就行:

# 提取每个字符串的最后一个单词
target_words = [s.split()[-1] for s in filtered_strings]
# 此时target_words的结果是:['car', 'bike', 'car', 'car']

步骤3:统计唯一词汇的数量

最后把这些单词转成集合(集合会自动去重),再取集合的长度就是你要的结果了:

unique_count = len(set(target_words))
print(unique_count)  # 输出:2

整合版代码

如果你想更简洁,也可以把这些步骤合并成一行:

lst = ['new car', '232', 'famous bike','232', 'new car', '232plane', 'new car', 'plane232']
unique_count = len(set(s.split()[-1] for s in lst if not any(char.isdigit() for char in s)))
print(unique_count)  # 同样输出2

这样就完美实现了你的需求,得到唯一词汇的数量是2~

内容的提问来源于stack exchange,提问作者YOLO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:33:51