我的代码
with open('freq1.txt') as f:
next(f, None)
list1 = [line.rstrip() for line in f]
with open('freq2.txt') as f:
next(f, None)
list2 = [line.rstrip() for line in f]
print set(list1).intersection(list2)
但是我得到了
组([])
例如,我有两个列表
list1=[1,2,3,4]
list2=[3,2,7,5,9]
我想列出list1和list2
中的所有元素newlist=[1,2,3,4,5,7,9]
如何写这个?
EDIT 我想使用列表推导的一种方式。
list1=[1.0,2.0,3.1,4.2]
list2=[3.0,2.0,7.2,5.1,9.2]
list3=[2.1,4.2,5.1,9.2]
su1 = list1 + [x for x in list2 if x not in list1]
su2= su1 + [x for x in list3 if x not in su1]
su2=sorted(su2)
print su2list1=[1.0,2.0,3.1,4.2]
list2=[3.0,2.0,7.2,5.1,9.2]
list3=[2.1,4.2,5.1,9.2]
su1 = list1 + [x for x in list2 if x not in list1]
su2= su1 + [x for x in list3 if x not in su1]
su2=sorted(su2)
print su2
工作非常好
[1.0, 2.0, 2.1, 3.0, 3.1, 4.2, 5.1, 7.2, 9.2]
答案 0 :(得分:5)
您想要set.union()
:
>>> set(list1).union(list2)
set([1, 2, 3, 4, 5, 7, 9])
如果你想要一个列表作为结果(如果你不想使用列表的属性,如索引,那就没有必要;如果你只是处理整数, 因为,由于整数的散列等于它们自己(除了-1,即-2),set()
对象也将保留顺序)你可以在{{list()
函数上调用union()
函数。 1}}。
>>> list(set(list1).union(list2))
答案 1 :(得分:1)
如果您希望元素按升序排序
sorted_unique = sorted(set(list1+list2))