问题描述
您好,是否有*直接*方式在列表上执行设置操作
保留输入列表的顺序?
For Ex。 l1 = [1,5,3,2,4,7]
l2 = [3,5,10]
和(l1与l2相交)返回[5,3] ....(和(l2与l1相交)
返回[3,5])
提前感谢,
amit。
-
----
Amit Khemka - onyomo.com
无尽的世界轮回,无尽的太阳旋转,无尽的追求;
我再次转身,回到我自己的开始,在这里,找到休息。
Hello, Is there a *direct* way of doing set operations on lists which
preserve the order of the input lists ?
For Ex. l1 = [1, 5, 3, 2, 4, 7]
l2 = [3, 5, 10]
and (l1 intersect l2) returns [5, 3] .... (and (l2 intersect l1)
returns [3, 5])
thanks in advance,
amit.
--
----
Amit Khemka -- onyomo.com
Endless the world''s turn, endless the sun''s Spinning, Endless the quest;
I turn again, back to my own beginning, And here, find rest.
推荐答案
你是什么意思直接办法 ?丑陋(有些人说)一个班轮?
过滤器(set(l1).intersection(set(l2)).__ contains _,l1)
filter(set (l1).intersection(set(l2)).__ contains _,l2)
what do you mean by "direct" way ? ugly(some said) one liner ?
filter(set(l1).intersection(set(l2)).__contains__, l1)
filter(set(l1).intersection(set(l2)).__contains__, l2)
但是:
intersection = set( list1)& set(list2)
[如果元素在交集中则为list1中元素的元素]
或
[如果元素在交集中则为list2中元素的元素]
给你想要的结果。
- 斯科特大卫丹尼尔斯
交叉步骤是不必要的,所以答案可以简化为
位:
The intersection step is unnecessary, so the answer can be simplified a
bit:
[3,5]
[3, 5]
这篇关于有序集列表操作..的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!