python 比较列表和 return 不匹配的值
python compare lists and return unmatched values
我想比较我列表的子列表和 return 不匹配的变量
输入是
lst = [['2','b'], ['!d','e'], ['s','f', 'd'], ['24','!b'], ['and','7']]
期望的输出
out_lst = [['2','b'],['!d','e'],['s','f','d'] ['24','!b'], ['and', '7']['e','s','f'] ['2','24']]
我正在相互比较我的子列表,如果我在一个子列表 ['s'、'f'、'd'] 中找到 d 而在另一个子列表 ['!d] 中找到 !d ', 'e'], 我将两者合并并仅添加不匹配的变量 ['e', 's', 'f'] 作为列表末尾的另一个子列表。如何才能高效完成?
import itertools
def reduction(self):
for i in range(0,len(self.lst)):
for j in range(0,len(self.lst[i])):
if not any(x in [i][j]== "!"+x in [i][j]):
self.new_lst.append()
else:
itertools.chain(x , ~x)
self.new_lst.pop()
print new_lst.reduction()
我因为将列表与字符串匹配而出错。有没有更好的方法来实现这个逻辑?
试试这个
def reduction(self):
res = self.lst[:]
for i in self.lst:
for j in i:
for k in self.lst:
if "!"+j in k:
temp = i[:]
temp.remove(j)
temp2 = k[:]
temp2.remove("!"+j)
res.append(temp2+temp)
self.lst = res[:]
return self.lst
我想比较我列表的子列表和 return 不匹配的变量
输入是
lst = [['2','b'], ['!d','e'], ['s','f', 'd'], ['24','!b'], ['and','7']]
期望的输出
out_lst = [['2','b'],['!d','e'],['s','f','d'] ['24','!b'], ['and', '7']['e','s','f'] ['2','24']]
我正在相互比较我的子列表,如果我在一个子列表 ['s'、'f'、'd'] 中找到 d 而在另一个子列表 ['!d] 中找到 !d ', 'e'], 我将两者合并并仅添加不匹配的变量 ['e', 's', 'f'] 作为列表末尾的另一个子列表。如何才能高效完成?
import itertools
def reduction(self):
for i in range(0,len(self.lst)):
for j in range(0,len(self.lst[i])):
if not any(x in [i][j]== "!"+x in [i][j]):
self.new_lst.append()
else:
itertools.chain(x , ~x)
self.new_lst.pop()
print new_lst.reduction()
我因为将列表与字符串匹配而出错。有没有更好的方法来实现这个逻辑?
试试这个
def reduction(self):
res = self.lst[:]
for i in self.lst:
for j in i:
for k in self.lst:
if "!"+j in k:
temp = i[:]
temp.remove(j)
temp2 = k[:]
temp2.remove("!"+j)
res.append(temp2+temp)
self.lst = res[:]
return self.lst