Python匹配元组有问题

2024-09-30 04:36:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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中的任何值=list1中的任何值,我需要它将其添加到匹配的应用程序集中。除非元组长度相等,否则它不起作用

任何关于如何解决这个逻辑错误的指导都将受到赞赏


Tags: 代码inaddapp应用程序列表forif
2条回答

你可以用几种不同的方法来解决这个问题。这里有两种方法:

循环:

list1 = [('10.180.13.101', '10.50.60.30', 'STCMGMTUNIX01')]
list2 = [('0.0.0.0', 'STCMGMTUNIX01')]
matches = []
for i in list1[0]:
    if i in list2[0]:
        matches.append(i)
print(matches)
#['STCMGMTUNIX01']

列出带有set

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

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

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

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)

对元组也一样

相关问题 更多 >

    热门问题