Python 一行包含字符串,以';分隔';

Python 一行包含字符串,以';分隔';,python,Python,在Python中,尝试执行以下操作: 我有一行包含多个由“,”分隔的字符串。 我想删除每个包含特定子字符串的字符串。 例如: line: first_name,second_name,every_single_name_exicted,dog,cat. 我想删除每个包含单词“name”的字符串+它包含的“,”,因此结果将是: line: dog,cat. 而不是: line: ,,,dog,cat 我可以用什么来实现这一点? 当我不关心特定子字符串的左边或右边有什么内容时,我通常如何搜索该

在Python中,尝试执行以下操作: 我有一行包含多个由“,”分隔的字符串。 我想删除每个包含特定子字符串的字符串。 例如:

line: first_name,second_name,every_single_name_exicted,dog,cat.
我想删除每个包含单词“name”的字符串+它包含的“,”,因此结果将是:

line: dog,cat.
而不是:

line: ,,,dog,cat
我可以用什么来实现这一点? 当我不关心特定子字符串的左边或右边有什么内容时,我通常如何搜索该子字符串(例如,当您可以编写名称时,可以使用记事本中的搜索选项)

试试这个
  • 使用.split(“,”)拆分字符串
  • 如果不在中,则使用
    按“名称”筛选
  • 带.strip()的带前导/尾随空格
  • 用“,”连接字符串。join()
  • 如有必要,在字符串末尾添加一个点,并加上“+”
  • 像这样:

     mystring = "first_name,  second_name, every_single_name_exicted,dog,cat"
    
     newstring = ", ".join(s.strip() for s in mystring.split(",") if not "name" in s) + "."
    

    split(',')
    该字符串为您提供一个列表,并在每个子字符串上使用
    中的
    检查您的匹配项(这是一个输入)。还有一些Python模块是专门为处理这些数据而编写的,特别是因为尝试自己解析这些数据是非常重要的,因为存在一些非常困难的情况?看起来,将
    split()
    join()
    与条件列表理解合理地结合在一起就可以解决这个问题。@Someprogrammerdude:我喜欢csv模块,它非常适合处理复杂的文件,但是对于简单的操作,
    str.split
    re.split
    是有意义的……至于您的问题,使用Python列表非常容易。见例。我相信你会很快找到你需要的。太好了,非常感谢,它很有效!只是一个小问题,它在我们删除“名称”的地方留下了很多空间。是什么引起的?
    dog,cat
    是我得到的输出。你说的是什么空格?@Valentinikolenko:看看我的答案。我觉得把这些都放在一行没有什么坏处,可读性似乎并不差
    s=','。join([s.split中的I代表I(','),如果I中没有'name')
     mystring = "first_name,  second_name, every_single_name_exicted,dog,cat"
    
     newstring = ", ".join(s.strip() for s in mystring.split(",") if not "name" in s) + "."