我一直难以尝试创建一种方法来返回列表列表之间的差异。这基本上就是我要找的东西:
s1r1=[[1,2,3,4,5,6],[2,4,6,8]]
uniq=[1,3,5,8]
我一直在尝试使用这种方法
list(set(s1r1[0])-set(s1r1[1]))
但它只返回了数字'8'。然后我尝试使用这种格式
list(set(a).symmetric_difference(set(b))
现在说我脚本的最后一行有语法错误,即使没有任何内容。有没有人有任何见解?
答案 0 :(得分:1)
使用^运算符进行symmetric_difference
a=set([1,2,3,4,5,6])
b=set([2,4,6,8])
a^b
输出
{1,3,5,8}
答案 1 :(得分:0)
>>> s1r1 = [[1,2,3,4,5,6],[2,4,6,8]]
>>> list(set(s1r1[0]).symmetric_difference(s1r1[1]))
['1', '5', '8', '3']
或者你是^
运算符的对称差异。
>>> list (set(s1r1[0]) ^ set(s1r1[1]))
[1, 3, 5, 8]
答案 2 :(得分:0)
这适用于任意数量的列表:
[[1, 3, 5], [8]]
收率:
print([j for i in uniq for j in i])
并将其作为单个列表返回:
[1, 3, 5, 8]
收率:
<script>
// with jquery
$('.dropdown-menu li').click(function(el) {
console.log(el.target.textContent)
})
// native
const list = document.querySelectorAll('.dropdown-menu li');
list.forEach(el => el.addEventListener('click', function listClick() {
console.log(el.textContent);
}));
</script>
答案 3 :(得分:0)
您无需投射到list
即可实现对称差异
(忽略他们来自我的iPython终端的In:
Out:
In [16]: s1r1 = [[1,2,3,4,5,6], [2,4,6,8]]
In [19]: a = set(s1r1[0])
In [20]: b = set(s1r1[1])
In [21]: ans = a.union(b) - a.intersection(b)
In [22]: print ans
set([8, 1, 3, 5])
In [23]: ans = a.symmetric_difference(b)
In [24]: print ans
set([1, 3, 5, 8])
对称差异恰好与交叉点相反
答案 4 :(得分:0)
<button type="button" onclick="document.getElementById('formButton').disabled=true;document.getElementById('formButton2').disabled=false;" class="fbutton" id="formButton">1</button>
<button type="button" onclick="this.disabled=true;document.getElementById('formButton').disabled=false;" class="fbutton" id="formButton2">2</button>