I'd like to make one list from two separate lists of unique items.
There are other similar questions but there didn't seem to be any that concerned doing this problem effectively since the lists are a few million items long.
Totally unrelated: am I the only one who hates how the tags suggestion box covers up the "post your question" button?
Python merges two lists without duplicates could be accomplished by using a set. And use the + operator to merge it.
If you don't want duplicates, use a Set instead of a List . To convert a List to a Set you can use the following code: // list is some List of Strings Set<String> s = new HashSet<String>(list); If really necessary you can use the same construction to convert a Set back into a List .
On the Data tab, under Tools, click Consolidate. In the Function box, click the function that you want Excel to use to consolidate the data. In each source sheet, select your data, and then click Add. The file path is entered in All references.
Use a set
.
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
>>> third = list(set(first) | set(second)) # '|' is union
>>> third
[1, 2, 3, 4, 5, 6, 7]
A slightly more efficient way to do it:
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
# New way
>>> list(set(first + second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.42 µs per loop
# Old way
>>> list(set(first) | set(second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.83 µs per loop
The new way is more efficient because it has only one set() instead of 2.
>>> l1 = range(10)
>>> l2 = range(5, 15)
>>> set(l1) | set(l2)
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
If someone want to do it without set()
:
a = [1,2,3]
b = [2,3,4]
newlist=[]
for i in a:
newlist.append(i)
for z in b:
if z not in newlist:
newlist.append(z)
newlist.sort()
print newlist
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With