1

How to merge two arrays as value-pairs in python? Example as follows:

A = [0,2,2,3]
B = [1,1,4,4]

Output:

[[0,1],[2,1],[2,4],[3,4]]
martineau
  • 119,623
  • 25
  • 170
  • 301
yogesh
  • 35
  • 4

4 Answers4

2

You can simply use "zip"

l1 = [0,2,2,3]
l2 = [1,1,4,4]
print(list(map(list ,zip(l1,l2))))
Greg W.F.R
  • 544
  • 1
  • 5
  • 13
2

In addition to Greg's answer, if you need key value pairs cast your zip result to dict

l1 = [0,2,2,3]
l2 = [1,1,4,4]
print(dict(zip(l1,l2)))

Output

{0: 1, 2: 4, 3: 4}

Before creating any loop, try to use built-ins.

Also there is a similar question for your need Zip with list output instead of tuple

Ahmet Burak
  • 197
  • 1
  • 8
0

You can simultaniously itterate through using zip(), and append a result list with each of the pairs like so:

A = [0,2,2,3]

B = [1,1,4,4]

result = []
for item1, item2 in zip(A,B):
    result.append([item1, item2])


Output = [[0,1],[2,1],[2,4],[3,4]]

print(result) # Prints: [[0,1],[2,1],[2,4],[3,4]]
print(Output == result) # Prints: True

This would give you a list of lists like you were looking for in your question as an output.

Things to keep in mind

If the two starting lists are different sizes then zip() throws away values after one of the lists runs out, so with :

A = [0,2,2,3,4,5]

B = [1,1,4,4]

result = []
for item1, item2 in zip(A,B):
    result.append([item1, item2])


Output = [[0,1],[2,1],[2,4],[3,4]]

print(result) # Prints: [[0,1],[2,1],[2,4],[3,4]]
print(Output == result) # Prints: True

You notice that the 4 and 5 in list A is thrown out and ignored.

Key-Value Pair

Also this is not a key-value pair, for that you will want to look into dictionaries in python. That would be something like:

output = {0:1, 2:4, 3:4}

This would allow you to do a lookup for a value, based on it's key like so:

output[3] # Would be 4
output[0] # Would be 1

Which doesn't work for this example because there are two 2's used as keys, so one would be overridden.

Kieran Wood
  • 1,297
  • 8
  • 15
0

Since you have mentioned key-value, you probably mean a dictionary.

A = [0, 2, 2, 3]
B = [1, 1, 4, 4]

dct = {} # Empty dictionary

for key, value in zip(A, B):
    dct[key] = value

print(dct)

The output will be:

{0: 1, 2: 4, 3: 4}

Note that, by definition, you can't have two identical keys. So in your case, {2: 1} will be overriden by {2: 4}.

Zakk
  • 1,935
  • 1
  • 6
  • 17