基于特定字符串对列表进行子集

2024-09-28 19:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读取一个文件并给它赋值变量“input_kws”。你知道吗

input_kws = open('words.txt','r')

“输入”的内容包括:

baseball
basketball
football
tennis
boxing
volleyball

我只想创建一个只包含“ball”的单词的新列表。你知道吗


Tags: 文件txt内容inputopenwords赋值ball
2条回答

还可以使用regex在字符串中查找球

import re

for line in open(r"words.txt","r"):
    if re.findall(r"ball",line) ==["ball"]:
        print(line)

baseball

basketball

football

volleyball

只要检查一下每根绳子上有没有“球”。你知道吗

input_kws= 'baseball basketball football tennis'.split()

ball_sports = [word for word in input_kws if 'ball' in word]
>>>['baseball', 'basketball', 'football']

或者,您可以使用filter来获得相同的结果

f = filter(lambda x: 'ball' in x, input_kws) #Returns a generator
ball_sports = list(f)

如果你不喜欢发电机,你可以用一个回路

ball_sports = []
for sport in input_kws:
    if 'ball' in sport:
        ball_sports.append(sport)

如果您的列表中有其他运动项目包含子字符串“ball”,则此操作将失败。示例

input_kws= 'baseball basketball football tennis balloon'.split()
f = filter(lambda x: 'ball' in x, input_kws) #Returns a generator
ball_sports = list(f)
>>>['baseball', 'basketball', 'football','balloon']

相关问题 更多 >