作为参考,这是我的代码:
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集中。除非元组的长度相等,否则它不起作用。
对于解决该逻辑错误的任何指导,我们将不胜感激。
答案 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}')
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)
对元组的工作方式相同。