【问题标题】:Compare beginning of strings of a list with a whitelist将列表字符串的开头与白名单进行比较
【发布时间】:2015-01-15 02:30:11
【问题描述】:

我想将列表与白名单进行比较。我现在要做的是:

>>> whitelist = ("one", "two")
>>> my_list = ["one", "two foo", "two bar", "three"]
>>> for item in my_list:
...     if not item.startswith(whitelist):
...         print(item)
three

有没有更有效/“更好”的方法来做到这一点?

【问题讨论】:

  • 这几乎就是你这样做的方式——如果你想测试元素是否完全匹配白名单,那么它有点不同,你可能会根据你想要的内容重新定义为理解与物品有关......但除此之外,这是正确的想法。
  • @mgilson 谢谢,这是一个很好的评论来确认这个想法。
  • 您要打印还是收集?
  • @AshwiniChaudhary print 语句只是一个例子,并不真正相关。

标签: python performance list python-3.x compare


【解决方案1】:

您可以使用列表推导:

>>> [item for item in my_list if not item.startswith(whitelist)]
['three']

【讨论】:

    【解决方案2】:
    print '\n'.join([item for item in my_list if not item.startswith(whitelist)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      相关资源
      最近更新 更多