Skip to content
Advertisement

How to convert a array of array to array of tuples

I everyone,

I struggle to convert an array of array like this :

[
    ["foo","bar","foo","bar","foo"],
    ["foo","bar","foo","bar","foo"],
    ["foo","bar","foo","bar","foo"],
    ["foo","bar","foo","bar","foo"]
]

to an array of tuples (array, str) like this:

[
    (["foo","bar","foo","bar","foo"], "type1"), 
    (["foo","bar","foo","bar","foo"], "type1"), 
    (["foo","bar","foo","bar","foo"], "type1"), 
    (["foo","bar","foo","bar","foo"], "type1")
]

I did find a way to append the type to the array but it’s not exactly what I want:

[
    ["foo","bar","foo","bar","foo", "type1"], 
    ["foo","bar","foo","bar","foo", "type1"], 
    ["foo","bar","foo","bar","foo", "type1"], 
    ["foo","bar","foo","bar","foo", "type1"]
]

Do you have something better ? Thanks :)

Advertisement

Answer

Solution

Shortest solution: list(zip(vals, types)) 🔥🔥🔥

vals = [
    ["foo","bar","foo","bar","foo"], 
    ["foo","bar","foo","bar","foo"], 
    ["foo","bar","foo","bar","foo"], 
    ["foo","bar","foo","bar","foo"]
]

# If you must specify different types for each element
# uncomment the following line
# types = ['type1', 'type2', 'type3', 'type4']

# If all of them should have the same type
types = ['type1' for _ in range(len(vals))]

# Finally combine vals and types
list(zip(vals, types))

Output:

[(['foo', 'bar', 'foo', 'bar', 'foo'], 'type1'),
 (['foo', 'bar', 'foo', 'bar', 'foo'], 'type1'),
 (['foo', 'bar', 'foo', 'bar', 'foo'], 'type1'),
 (['foo', 'bar', 'foo', 'bar', 'foo'], 'type1')]
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement