检查列表中每个元素的第二个单词的长度是否为1,并使用Python将该元素从列表中删除

检查列表中每个元素的第二个单词的长度是否为1,并使用Python将该元素从列表中删除,python,Python,我有一个包含三个元素的列表: cleaned_str=['Washington C,Bright G,Gleider A','Mine C','This not fun'. 我想从列表中删除这些元素,其中列表中每个元素的第二个单词长度为1。 例如,“Washington C,Bright G,Gleider A”-Washington后的第二个单词“C”的长度为1,因此应删除此元素。 因此,在处理之后,我将在这个列表中只得到一个项目=[“这不好玩”]。 非常感谢你的帮助 str_to_c

我有一个包含三个元素的列表:
cleaned_str=['Washington C,Bright G,Gleider A','Mine C','This not fun'.

我想从列表中删除这些元素,其中列表中每个元素的第二个单词长度为1。
例如,“Washington C,Bright G,Gleider A”-Washington后的第二个单词“C”的长度为1,因此应删除此元素。
因此,在处理之后,我将在这个列表中只得到一个项目=[“这不好玩”]。
非常感谢你的帮助

    str_to_clean = "Washington C, Bright G, Gleider A.Mine C.This is not fun."
    cleaned_str = []
    for sentence in str_to_clean.split("."):
         cleaned_str.append(sentence)
print("Output", ".".join(cleaned_str))

这给了我作为输出的列表。我想知道“re”如何帮助我识别列表中每个项目的第二个单词。如果我对它使用了进一步拆分,那么我如何才能重新合并以从该列表中删除整个项目?这就是我被卡住的地方。

假设您的列表如下所示:

list = ['Washington C', 'Bright G', 'Gleider A', 'Mine C', 'This is not fun']
您只需要在列表上运行loop,拆分字符串并获取第二个对象的len,就这样(假设您现在不想重新学习)


要从列表中删除对象,请查看以下内容

假设您的列表如下所示:

list = ['Washington C', 'Bright G', 'Gleider A', 'Mine C', 'This is not fun']
您只需要在列表上运行loop,拆分字符串并获取第二个对象的len,就这样(假设您现在不想重新学习)


要从列表中删除对象,请查看此

您可以在“.”字符处拆分字符串,删除最后一个元素,即空字符串

['Strömberg C,Johansson G,Adolfsson A','Mine C','This not fun','

在此之后,您只需在列表上运行一个循环,而不附加您提到的“列表中每个元素的第二个单词的长度为1”的条件:


可以在“.”字符处拆分字符串,删除最后一个元素,即空字符串

['Strömberg C,Johansson G,Adolfsson A','Mine C','This not fun','

在此之后,您只需在列表上运行一个循环,而不附加您提到的“列表中每个元素的第二个单词的长度为1”的条件:


将列表重命名为xlist以避免使用保留字

xlist = ['Washington C', 'Bright G', 'Gleider A', 'Mine C', 'This is not fun']

for x in xlist:
    if len(x.split()[1]) != 1:
        print (x)
返回

This is not fun

将列表重命名为xlist以避免使用保留字

xlist = ['Washington C', 'Bright G', 'Gleider A', 'Mine C', 'This is not fun']

for x in xlist:
    if len(x.split()[1]) != 1:
        print (x)
返回

This is not fun

您自己尝试过什么吗?请允许我推荐提示:尝试考虑从您现有列表中的筛选元素构建一个新列表。正如@kaya3所说,
re
包应该有助于过滤部分。尝试解决方案并编辑此问题,以显示您仍然需要帮助的位置。我建议使用
split()
for
循环来迭代列表
re
在启动时可能会非常困难。在stru-to-clean中,您使用“.”和“.”的混合物作为分隔符。这是故意的吗?你自己尝试过什么吗?我可以推荐一个提示:试着考虑从你现有列表中过滤的元素构建一个新的列表。正如@kaya3所说,
re
包应该有助于过滤部分。尝试解决方案并编辑此问题,以显示您仍然需要帮助的位置。我建议使用
split()
for
循环来迭代列表
re
在启动时可能会非常困难。在stru-to-clean中,您使用“.”和“.”的混合物作为分隔符。这是故意的吗?好的建议,但坏的做法是使用常用内置函数的名称作为变量名(即本例中的列表),因为它会隐藏内置函数。为什么不直接使用OP名称,即str_to_clean?好的建议,但坏的做法是将常用内置函数的名称用作变量名(即本例中的list),因为它会隐藏内置函数。为什么不直接使用OP名称,即str_to_clean?谢谢@Luan。但我还是得到了第一个有“C”的项目,也是单词长度1。我的目标是检查列表中每个项目的第二个单词长度,并从列表中完全删除该项目。非常感谢!)谢谢@Luan。但我还是得到了第一个有“C”的项目,也是单词长度1。我的目标是检查列表中每个项目的第二个单词长度,并从列表中完全删除该项目。非常感谢!)