# Given a list of Tuples, return a new list of the first values ​​of the tuples

I have a list of tuples and I want a new list consisting of the first values ​​of the tuples.

those. if the list is:

[(1.5), (4.10), (100.3), (4.8)]

I want to create the following list:

[1,4,100,4]

The following code works:

``````a = [(1,5),(4,10),(100,3),(4,8)]
l = []
for i in range(len(a)):
l.append(a[i])
```

```

But it seems like there should be a better way, for example:

``````l = itertools.chain(for i in range(len(a)) a[i]) #This won't work
```

```
+3

source to share

``````l=[(1,5),(4,10),(100,3),(4,8)]
print [x for x in l]
```

```

This will give you

``````[1, 4, 100, 4]
```

```

on request :)

+6

source

I usually used a list comprehension:

``````>>> a = [(1,5),(4,10),(100,3),(4,8)]
>>> [x for x, y in a]
[1, 4, 100, 4]
```

```
+7

source

If you don't want to understand the list, you can try this:

``````x = [(1,5),(4,10),(100,3),(4,8)]

first_vals = list(zip(*x))
```

```

Result:

``````>>> first_vals
[1, 4, 100, 4]
```

```
+3

source

Try the following:

``````>>> a = [(1,5),(4,10),(100,3),(4,8)]
>>> [b for b in a]
[1, 4, 100, 4]
```

```
+2

source

``````>>> map(lambda e: e, (e for e in a))
[1, 4, 100, 4]
```

```
+1

source

All Articles