join list of lists in python
--------------------------------------------------
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Take control of your privacy with Proton's trusted, Swiss-based, secure services.
Choose what you need and safeguard your digital life:
Mail: https://go.getproton.me/SH1CU
VPN: https://go.getproton.me/SH1DI
Password Manager: https://go.getproton.me/SH1DJ
Drive: https://go.getproton.me/SH1CT
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Orient Looping
--
Chapters
00:00 Join List Of Lists In Python
00:20 Answer 1 Score 33
00:49 Accepted Answer Score 730
00:59 Answer 3 Score 374
01:06 Answer 4 Score 275
01:22 Thank you
--
Full question
https://stackoverflow.com/questions/7164...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Take control of your privacy with Proton's trusted, Swiss-based, secure services.
Choose what you need and safeguard your digital life:
Mail: https://go.getproton.me/SH1CU
VPN: https://go.getproton.me/SH1DI
Password Manager: https://go.getproton.me/SH1DJ
Drive: https://go.getproton.me/SH1CT
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Orient Looping
--
Chapters
00:00 Join List Of Lists In Python
00:20 Answer 1 Score 33
00:49 Accepted Answer Score 730
00:59 Answer 3 Score 374
01:06 Answer 4 Score 275
01:22 Thank you
--
Full question
https://stackoverflow.com/questions/7164...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
ACCEPTED ANSWER
Score 730
import itertools
a = [['a','b'], ['c']]
print(list(itertools.chain.from_iterable(a)))
This gives
['a', 'b', 'c']
ANSWER 2
Score 374
x = [["a","b"], ["c"]]
result = sum(x, [])
ANSWER 3
Score 275
If you're only going one level deep, a nested comprehension will also work:
>>> x = [["a","b"], ["c"]]
>>> [inner
... for outer in x
... for inner in outer]
['a', 'b', 'c']
On one line, that becomes:
>>> [j for i in x for j in i]
['a', 'b', 'c']
ANSWER 4
Score 33
This is known as flattening, and there are a LOT of implementations out there.
How about this, although it will only work for 1 level deep nesting:
>>> x = [["a","b"], ["c"]]
>>> for el in sum(x, []):
... print el
...
a
b
c
From those links, apparently the most complete-fast-elegant-etc implementation is the following:
def flatten(l, ltypes=(list, tuple)):
ltype = type(l)
l = list(l)
i = 0
while i < len(l):
while isinstance(l[i], ltypes):
if not l[i]:
l.pop(i)
i -= 1
break
else:
l[i:i + 1] = l[i]
i += 1
return ltype(l)