Join tuples inside list

I have:

mylist = [(['a', 'b'], [1, 2]), (['c', 'd'], [3])]

I need one list with the letters and one with the numbers, like this:

(['a', 'b', 'c', 'd'], [1, 2, 3])

I have made some efforts, but I could just get one list with the letters, not both:

answer = [item for sublist in mylist for item in sublist[0]]
#returns ['a', 'b', 'c', 'd']

answer = [[item for sublist in mylist for item in sublist[i]] for i in range(2)]

Just need to iterate through your sublist :)

Python, This can have application in situations we need to combine values to form in which we can iterate for each tuple list and join it with other tuple� I need to call upon a specific element of a tuple inside a list of tuples for example. list = [(tuple1 ,10,10), (tuple2 ,20,20), (tuple3 ,30,30)] how do i go about calling upon a specific element in one of the tuples. EDIT: so my program is used to take a file that has a list of numbers representing tiles for a game level.

Here's a simple alternative using zip and itertools.chain:

from itertools import chain
[list(chain.from_iterable(i)) for i in zip(*mylist)]
# [['a', 'b', 'c', 'd'], [1, 2, 3]]

in Python, How to join a list of tuples into one list?, b = [i for sub in a for i in sub]. That will do the trick. Join with List Example Set Example Tuple Example How to use the join method? The general syntax of using the join method is: str.join(iterable) Where: Str is a separator by which string objects in iterable will be concatenated; Iterable is a sequence e.g. a list, tuple etc.

zip works as well:

tuple(map(lambda x: x[0]+x[1],  zip(mylist[0], mylist[1])))

Code:

mylist = [(['a', 'b'], [1, 2]), (['c', 'd'], [3])]

print(tuple(map(lambda x: x[0]+x[1],  zip(mylist[0], mylist[1]))))
# (['a', 'b', 'c', 'd'], [1, 2, 3])

Python Join Two Tuples, Python Tuples Tutorial Tuple Access Tuple Items Change Tuple Item Loop List Items Check if Tuple Item Exists Tuple Length Tuple With One Item Remove� You can convert the tuple into a list, change the list, and convert the list back into a tuple. Example. Convert the tuple into a list to be able to change it: x = ("apple", "banana", "cherry") y = list(x) y [1] = "kiwi". x = tuple(y) print(x) Try it Yourself ».

Combining tuples in list of tuples in Python, A list can contain tuples as its elements. In this article we will see how we can combine each element of a tuple with another given element and� Hi, there's a list with tuples. lst = [ ('Meat', 'Milk'), ('Cake - Cookie',), ('Apple', 'Orange')] For each tuple of len == 1 I want to split it at - so it results with: lst = [ ('Meat', 'Milk'), ('Cake', 'Cookie'), ('Apple', 'Orange')]

Tuples in Python 3, Each element or value that is inside of a tuple is called an item. Tuples are similar to lists, but their values can't be modified. it can be used to combine tuples to form a new tuple, though it cannot modify an existing tuple. Lists and tuples are arguably Python’s most versatile, useful data types.You will find them in virtually every nontrivial Python program. Here’s what you’ll learn in this tutorial: You’ll cover the important characteristics of lists and tuples.

How to join elements inside a tuple, in list of tuples?, Python, The join function can be used to join each tuple elements with each other and list comprehension handles the task of iterating through� The join() method provides a flexible way to create strings from iterable objects. It joins each element of an iterable (such as list, string, and tuple) by a string separator (the string on which the join() method is called) and returns the concatenated string. The syntax of the join() method is: string.join(iterable)

Comments
  • answer = [[item for sublist in mylist for item in sublist[i]] for i in range(2)]
  • chain is nice... alternatively you could avoid it and just use a nested list-comp, eg: [[a for b in el for a in b] for el in zip(*mylist)]
  • Yes there's always the list-comp alternative to flatten lists @JonClements, chain is nice though for conciseness and performance
  • Indeed... in terms of efficiency though, you probably want to go for chain.from_iterable(i) instead of chain(*i) as it exists exactly for that case (and imho is even more explicit than unpacking)