【问题标题】:Python compare part of string to listPython将部分字符串与列表进行比较
【发布时间】:2020-06-01 17:37:24
【问题描述】:

我有多个如下所示的字符串:

“BPBA-SG790-NGTP-W-AU-BUN-3Y”

我想将字符串与我的列表进行比较,如果字符串的一部分在列表中,我只想将列表中找到的部分作为新变量。

这是我的代码:

    mylist = ["770", "790", "1470", "1490"]
    sq = “BPBA-SG790-NGTP-W-AU-BUN-3Y”

    matching = [s for s in mylist if any(xs in s for xs in sq)]
    print(matching)

>>> ['770', '790', '1470', '1490'] 

例如这是我想要得到的:

    mylist = ["770", "790", "1470", "1490"]
    sq = “BPBA-SG790-NGTP-W-AU-BUN-3Y”

    matching = [s for s in mylist if any(xs in s for xs in sq)]
    print(matching)

>>> 790

知道怎么做吗?

【问题讨论】:

    标签: python python-3.x string list


    【解决方案1】:

    像这样,您可以使用列表推导:

    mylist = ["770", "790", "1470", "1490"]
    sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
    
    matching = [m for m in mylist if m in sq]
    
    print(matching)
    

    输出:

    ['790']
    

    【讨论】:

      【解决方案2】:

      您可以使用 python 中的in 关键字:

      mylist = ["770", "790", "1470", "1490"]
      sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
      for i in mylist:
          if i in sq:
              print(i)
      
      

      代码遍历列表并打印列表元素(如果它在字符串中)

      【讨论】:

      • 这正是我想要的。谢谢
      【解决方案3】:

      不确定我是否明白你的问题,但以下应该可以解决问题

      [x for x in mylist if x in sq]
      

      它会返回一个列表中出现在字符串中的那些元素的列表

      【讨论】:

        【解决方案4】:

        试试

        mylist = ["770", "790", "1470", "1490"]
        sq = "BPBA-SG790-NGTP-W-AU-BUN-3Y"
        
        b = [x for x in mylist if sq.find(x) != -1]
        print b
        

        【讨论】:

        • 虽然此代码可以解决 OP 的问题,但最好包含关于您的代码如何解决 OP 问题的说明。这样,未来的访问者可以从您的帖子中学习,并将其应用到他们自己的代码中。 SO 不是编码服务,而是知识资源。此外,高质量、完整的答案更有可能获得支持。这些功能,以及所有帖子都是独立的要求,是 SO 作为一个平台的一些优势,使其与论坛区分开来。您可以编辑以添加其他信息和/或使用源文档补充您的解释。
        【解决方案5】:

        [s for s in mylist if s in sq]

        对于那些不喜欢简洁的人:

        这是一个列表推导。它计算出满足谓词s in sqmylist 中的字符串s 列表(即ssq 的子字符串)。

        【讨论】:

        • 纯代码答案无价值
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-17
        • 1970-01-01
        • 2012-11-07
        • 2021-08-27
        • 2020-12-18
        相关资源
        最近更新 更多