比较列表中的多个唯一字符串

Hos*_*ser 3 python list python-2.7

编辑:我使用的是Python 2.7

我有一个给定的'矩阵',如下所示,其中包含多个字符串列表.我想通过矩阵排序,只打印出只包含一组特定字符串的行.

任何人都可以给我一个如何解决这个问题的提示吗?

到目前为止我尝试了什么:

matrix = [("One", "Two", "Three"),
("Four", "Five", "Six"),
("Seven", "Eight", "One"),
("Four", "Five", "Six"),
("One", "Three", "Six")]

for index, data in enumerate(matrix):
    if "One" and "Three" and "Six" in data:
        print data
Run Code Online (Sandbox Code Playgroud)

期望的输出:

("One", "Three", "Six")
Run Code Online (Sandbox Code Playgroud)

实际产出(截至目前):

('Four', 'Five', 'Six')
('Four', 'Five', 'Six')
('One', 'Three', 'Six')
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

您的测试不正确,您希望单独测试每个字符串in:

if "One" in data and "Three" in data and "Six" in data:
Run Code Online (Sandbox Code Playgroud)

and不对in测试的操作数进行分组; 每个组件分别进行评估:

("One") and ("Three") and ("Six" in data):
Run Code Online (Sandbox Code Playgroud)

这导致"Six" in data归还的结果; 其他两个值肯定都是True,因为它们是非空字符串.

更好的方法是使用一:

if {"One", "Three", "Six"}.issubset(data):
Run Code Online (Sandbox Code Playgroud)