我有点被困在这个问题上:
a = [1,2,3,2,4,5]
b = [2,5]
我想比较这两个列表并生成一个列表,其中包含与a
相同的项,但将b
中未出现的任何项设置为0。有效输出如下:
c = [0,2,0,0,0,5]
# or
c = [0,0,0,2,0,5]
我不会事先知道这两个列表中的数字元素。你知道吗
我试过for
循环,但是
['0' for x in a if x not in b]
它删除2的所有实例。我只想删除一次(目前在b
发生一次)。我需要在上面的loop
中添加一个条件来保持匹配的元素。你知道吗
Tags:
以下方法可行:
或者对于单行程序,使用
b.remove(x)
返回None
的事实:如果} 来完成,因为集合允许非常有效的成员身份测试:
b
中的元素是唯一的,最好使用^{如果} 替换该集:
b
可以包含重复项,则可以用表示多集的^{这里有一种使用
set
的方法。缺点是list
复制操作和初始set
转换。上面是O(1)删除和查找操作。你知道吗相关问题 更多 >
编程相关推荐