我需要比较python中的2个嵌套列表以查找第一个列表的字符串与第二个列表中的字符串不匹配的位置

Posted

技术标签:

【中文标题】我需要比较python中的2个嵌套列表以查找第一个列表的字符串与第二个列表中的字符串不匹配的位置【英文标题】:I need to compare 2 nested lists in python to find where a string of the first list does not match with the string in the second list 【发布时间】:2021-02-18 20:30:01 【问题描述】:

如果我有这两个列表:

list1 = ['P', ['f', 'X', 'a'], ['g', 'Y', ['f', 'a']]]
list2 = ['P', ['f', ['f', 'a'], 'a'], ['g', 'X', ['f', 'X']]]

在这两个列表中,在第一个嵌套列表中,我们分别有 ['f', 'X', 'a'] 和 ['f', ['f', 'a'], 'a']清单 1 和清单 2。 我需要找到这些情况并替换不匹配的字符串(或列表)。例如,在这 2 个子列表中,我需要将 ['f', 'a'] 替换为 'X',以便最后两个列表相同。 (这是为了一阶逻辑统一)。

到目前为止,我有以下代码来配对我的列表,但我不知道从那里去哪里:

list1 = ['P', ['f', 'X', 'a'], ['g', 'Y', ['f', 'a']]]
list2 = ['P', ['f', ['f', 'a'], 'a'], ['g', 'X', ['f', 'X']]]


temp = len(list1) * '% s = %% s, '
res = temp % tuple(list1) % tuple(list2)
print("The paired elements string is : " + res)

我得到以下输出:

P = P, ['f', 'X', 'a'] = ['f', ['f', 'a'], 'a'], ['g', 'Y', ['f', 'a']] = ['g', 'X', ['f', 'X']]

任何帮助或指导将不胜感激。我对 python 很陌生。

【问题讨论】:

list1 = ['P', ['f', 'X', 'a'], ['g', 'Y', ['f', 'a']]] 比较是否区分大小写? @AryanMishra 是的 【参考方案1】:
list2 = ['P', ['f', ['f', 'a'], 'a'], ['g', 'X', ['f', 'X']]]

def repList(mlist):
    rlist = []
    i = 0
    while i < len(mlist):
        f = False
        if i < len(mlist) - 2 and type (mlist[i]) == str and type(mlist[i+1]) == list and type (mlist[i + 2]) == str:
            sublist = mlist[i + 1]
            if len(sublist) == 2 and mlist[i] == sublist[0] and mlist[i + 2] == sublist[1]:
                f = True
        if f : 
            rlist.append(mlist[i])
            rlist.append('X')
            rlist.append(mlist[i+2])
            i += 2
         elif type(mlist[i]) == list:
            rlist.append(repList(mlist[i]))
         else: 
            rlist.append(mlist[i])
         i+=1

return rlist

list3 = repList(list2)
print (list3)

【讨论】:

以上是关于我需要比较python中的2个嵌套列表以查找第一个列表的字符串与第二个列表中的字符串不匹配的位置的主要内容,如果未能解决你的问题,请参考以下文章

在列表列表中查找重复项

比较 NSMutableArray 元素以从列表中查找第二大元素

Python嵌套列表内部比较和编辑

在 python 列表中向后或向前循环以查找匹配项

Python 3:扁平化嵌套字典和字典中的列表

Python中列表和字典有啥区别,分别适用于啥