python两个列表(或集合、字典)进行比较,如果一个列表中的几位在另一个列表中出现,则删除这些项

#coding=utf-8
#py2.7
test1 = ['a1', 'b2']
test2 = ['a1_001', 'a1_002', 'a1_003', 'a2_001', 'a3_001', 'b2_001']
print filter(lambda x:x[:2] not in test1,test2)
#我是按照你给的例子来写的代码,这样只循环了 test2长度的次数
#“现在两组数据长度不一样”,不太明白这句话对于你的逻辑有啥影响

❷ python如何将2个for循环的数变集合并求其补集

setA = set(fib(i+1) for i in range(a))
setB = set(fib(i+1) for i in range(b))
setC = setA | setB
setAcomp = setC - setA
setBcomp = setC - setB
print(setAcomp)
print(setBcomp)

❸ 关于 python set 列表 差集的问题。

从源代码看在set中增加一个元素,就可以看出set是根据hash表来索引数据,每个元素都计算出一个long类型的hash值。

另外一个优化就是内存分配:set_table_resize
每次增加元素时,如果原来分配数不够,就一次增加一批,而不是一个一个增加。

static int set_add_key(register PySetObject *so, PyObject *key)
{
register long hash;
register Py_ssize_t n_used;

if (!PyString_CheckExact(key) ||
(hash = ((PyStringObject *) key)->ob_shash) == -1) {
hash = PyObject_Hash(key);
if (hash == -1)
return -1;
}
assert(so->fill <= so->mask); /* at least one empty slot */
n_used = so->used;
Py_INCREF(key); //插入元素引用+1
if (set_insert_key(so, key, hash) == -1) {
Py_DECREF(key);
return -1;
}
if (!(so->used > n_used && so->fill*3 >= (so->mask+1)*2))
return 0;
return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4);
}

static int set_insert_key(register PySetObject *so, PyObject *key, long hash)
{
register setentry *entry;
typedef setentry *(*lookupfunc)(PySetObject *, PyObject *, long);

assert(so->lookup != NULL);
entry = so->lookup(so, key, hash); //这里根据hash值来查找元素
if (entry == NULL)
return -1;
if (entry->key == NULL) {
/* UNUSED */
so->fill++;
entry->key = key;
entry->hash = hash;
so->used++;
} else if (entry->key == mmy) {
/* DUMMY */
entry->key = key;
entry->hash = hash;
so->used++;
Py_DECREF(mmy);
} else {
/* ACTIVE */
Py_DECREF(key);
}
return 0;
}

❹ Python中set集合中的remove和discard

历史原因不知道。
比如discard是remove的改进版呢?
discard没有报错可以不引起程序的报错。
remove会报错,可以用try catch抓报错,然后可以触发自定义事件,而discard就不能触发了,因为返回了默认值。(当然想达到办法都是有的)

❺ python 里的差集,交集,并集是什么意思

这是 set的用法
首先set是集合,集合是无序不重复的
t=set([1,2,3,4,5])
s=set([5,6,7,8,9])

并集:
a = t | s # t 和 s的并集,计算的是t和s加在一起有多少不重复的元素,根据上面的例子,a就是一个包含1、2、3、4、5、6、7、8、9这九个元素的集合
交集:
b = t & s # t 和 s的交集,计算的是t和s有多少共同拥有不重复的元素,根据上面的例子,a就是一个包含5这一个元素的集合
差集:
c = t - s # 求差集(项在t中,但不在s中),根据上面的例子,a就是一个包含1、2、3、4这四个元素的集合

❻ Python有两个列表,a和b,怎样打印出b相对a列表,b中少了哪些元素以及与a不相同的元素

这表达能力也是堪忧。。
b相对a少了的元素。。。b中相对a来说不相同的元素。。回。
总结出来,就是答不要a与b都有的元素。。。
集合上说,就是 a与b的并集 “减去”a与b的交集,当然这里说的减去,是指差集
代码就是
(set(a) | set(b) ) - (set(a) & set(b))

❼ numpy 两个一维数组的差集

>>> a = np.array([1, 2, 3, 2, 4, 1])
>>> b = np.array([3, 4, 5, 6])
>>> np.setdiff1d(a, b)
array([1, 2])

❽ python怎么求两个集合set的差集

这个复是python官方的中文教程制
有最新的3.4.3版本的
也可以选择中英对照
基本的东西都讲述的差不多了
如果想了解更多库或模块
知乎上大神很多
随便找一找都能找到很多有用的建议
但是建议不要初期就看过多虚的比较和互撕神马的
官方的idle用好了之...

❾ 关于python集合运算

差集 a-b 从集合a中去除所有在集合b中出现的元素集合
并集 a|b 集合a,b中所有不重复的元素集合
交集 a&b 集合a,b中均出现的元素集合
如 a={1,2,3,4} b={2,4,6,8} a集合中减去b中出现的2,4 a-b为{1,3}
a|b 为 {1,2,3,4,6,8} a&b为 a ,b中均出现的{2,4}

❿ python二维数组怎么求交集

本文实例讲述了python获得两个数组交集、并集、差集的房部分。分享给大家供大家参考。具体如下:
1. 获取两个list 的交集
#方法一:
a=[2,3,4,5]
b=[2,5,8]
tmp = [val for val in a if val in b]
print tmp
#[2, 5]

#方法二
print list(set(a).intersection(set(b)))

2. 获取两个list 的并集

print list(set(a).union(set(b)))

3. 获取两个 list 的差集

print list(set(b).difference(set(a))) # b中有而a中没有的

通过以上方法,就能处理python list 的交集,并集,差集了。