如何解决我需要在python中比较2个嵌套列表,以查找第一个列表的字符串与第二个列表中的字符串不匹配的地方
如果我有以下两个列表:
list1 = ['P',['f','X','a'],['g','Y','a']]]
list2 = ['P','X']]]
在这两个列表中,在第一个嵌套列表中,我们分别具有['f','X','a']和['f',['f','a'],'a'] list1和list2。 我需要找到这些情况并替换不匹配的字符串(或列表)。例如,在这2个子列表中,我需要将['f','a']替换为'X',以便最后两个列表都相同。 (这是用于一阶逻辑统一)。
到目前为止,我具有以下代码来配对列表,但是我不知道从那里去哪里:
list1 = ['P','X']]]
temp = len(list1) * '% s = %% s,'
res = temp % tuple(list1) % tuple(list2)
print("The paired elements string is : " + res)
在哪里得到以下输出:
P = P,'a'] = ['f','a']] = ['g','X']]
任何帮助或指导将不胜感激。我是python的新手。
解决方法
list2 = ['P',['f','a'],['g','X','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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。