匹配元组的Python问题

时间:2019-01-25 17:37:16

标签: python tuples

作为参考,这是我的代码:

list1 = [('10.180.13.101', '10.50.60.30', 'STCMGMTUNIX01')]
list2 = [('0.0.0.0', 'STCMGMTUNIX01')]

for i in list1:
    for j in list2:
        for k in j:
            print (k)
            if k.upper() in i:
                matching_app.add(j)


for i in matching_app:
    print (i)

当我运行它时,它不匹配。该列表可以包含两个或三个变量,如果list2中的ANY值= list1中的ANY值,我需要将其添加到matching_app集中。除非元组的长度相等,否则它不起作用。

对于解决该逻辑错误的任何指导,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以通过几种不同的方式解决此问题。这是两种方法:

循环:

merged = list(list1[0] + list2[0])
matches2 = set([i for i in merged if merged.count(i) > 1])
print(matches2)
#{'STCMGMTUNIX01'}

使用class Thing: defaults = { 'on':1, 'off': 0 } def something(self, k, v): # if v is a key in the defaults, replace its value if v in self.defaults: v = self.defaults[v] print(f'SET {k} {v}')

列出Comp
if

答案 1 :(得分:0)

我不清楚您想做什么。您有两个列表,每个列表仅包含一个元组。在第一个元组中似乎还缺少一个逗号。

要从另一个列表中的列表中查找项目,您可以:

list1 = ['10.180.13.101', '10.50.60.30', 'STCMGMTUNIX01']
list2 = ['0.0.0.0', 'STCMGMTUNIX01']

for item in list2:
    if item.upper() in list1: # Check if item is in list
        print(item, 'found in', list1)

对元组的工作方式相同。