Combine all elements in list python to string

Use str.join:

>>> words = ['this', 'is', 'a', 'sentence']
>>> '-'.join[words]
'this-is-a-sentence'
>>> ' '.join[words]
'this is a sentence'

Mateen Ulhaq

22.2k16 gold badges86 silver badges127 bronze badges

answered Sep 17, 2012 at 5:33

Burhan KhalidBurhan Khalid

164k18 gold badges238 silver badges276 bronze badges

11

A more generic way to convert Python lists to strings would be:

>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join[map[str, my_lst]]
>>> print[my_lst_str]

answered Dec 1, 2015 at 3:11

Aaron SAaron S

4,5534 gold badges28 silver badges29 bronze badges

4

It's very useful for beginners to know why join is a string method.

It's very strange at the beginning, but very useful after this.

The result of join is always a string, but the object to be joined can be of many types [generators, list, tuples, etc].

.join is faster because it allocates memory only once. Better than classical concatenation [see, extended explanation].

Once you learn it, it's very comfortable and you can do tricks like this to add parentheses.

>>> ",".join["12345"].join[["[","]"]]
Out:
'[1,2,3,4,5]'

>>> list = ["[","]"]
>>> ",".join["12345"].join[list]
Out:
'[1,2,3,4,5]'

heilala

6637 silver badges16 bronze badges

answered May 14, 2016 at 13:55

WallebotWallebot

6875 silver badges7 bronze badges

4

Edit from the future: Please don't use the answer below. This function was removed in Python 3 and Python 2 is dead. Even if you are still using Python 2 you should write Python 3 ready code to make the inevitable upgrade easier.

Although @Burhan Khalid's answer is good, I think it's more understandable like this:

from str import join

sentence = ['this','is','a','sentence']

join[sentence, "-"] 

The second argument to join[] is optional and defaults to " ".

Anupam

14.2k18 gold badges62 silver badges92 bronze badges

answered Nov 2, 2015 at 1:51

SilentVoidSilentVoid

4925 silver badges10 bronze badges

4

list_abc = ['aaa', 'bbb', 'ccc']

string = ''.join[list_abc]
print[string]
>>> aaabbbccc

string = ','.join[list_abc]
print[string]
>>> aaa,bbb,ccc

string = '-'.join[list_abc]
print[string]
>>> aaa-bbb-ccc

string = '\n'.join[list_abc]
print[string]
>>> aaa
>>> bbb
>>> ccc

answered Sep 3, 2020 at 9:18

We can also use Python's reduce function:

from functools import reduce

sentence = ['this','is','a','sentence']
out_str = str[reduce[lambda x,y: x+"-"+y, sentence]]
print[out_str]

the Tin Man

156k41 gold badges209 silver badges297 bronze badges

answered Nov 29, 2018 at 11:15

1

We can specify how we join the string. Instead of '-', we can use ' ':

sentence = ['this','is','a','sentence']
s=[" ".join[sentence]]
print[s]

the Tin Man

156k41 gold badges209 silver badges297 bronze badges

answered Oct 18, 2019 at 7:46

If you want to generate a string of strings separated by commas in final result, you can use something like this:

sentence = ['this','is','a','sentence']
sentences_strings = "'" + "','".join[sentence] + "'"
print [sentences_strings] # you will get "'this','is','a','sentence'"

Tomerikoo

16.5k15 gold badges37 silver badges54 bronze badges

answered Jun 30, 2020 at 15:20

CarmorenoCarmoreno

1,15815 silver badges26 bronze badges

If you have a mixed content list and want to stringify it, here is one way:

Consider this list:

>>> aa
[None, 10, 'hello']

Convert it to string:

>>> st = ', '.join[map[str, map[lambda x: f'"{x}"' if isinstance[x, str] else x, aa]]]
>>> st = '[' + st + ']'
>>> st
'[None, 10, "hello"]'

If required, convert back to the list:

>>> ast.literal_eval[st]
[None, 10, 'hello']

the Tin Man

156k41 gold badges209 silver badges297 bronze badges

answered Jan 27, 2021 at 10:21

1

def eggs[someParameter]:
    del spam[3]
    someParameter.insert[3, ' and cats.']


spam = ['apples', 'bananas', 'tofu', 'cats']
eggs[spam]
spam =[','.join[spam]]
print[spam]

Paul Roub

36k27 gold badges80 silver badges88 bronze badges

answered May 7, 2020 at 21:18

1

Without .join[] method you can use this method:

my_list=["this","is","a","sentence"]

concenated_string=""
for string in range[len[my_list]]:
    if string == len[my_list]-1:
        concenated_string+=my_list[string]
    else:
        concenated_string+=f'{my_list[string]}-'
print[[concenated_string]]
    >>> ['this-is-a-sentence']

So, range based for loop in this example , when the python reach the last word of your list, it should'nt add "-" to your concenated_string. If its not last word of your string always append "-" string to your concenated_string variable.

answered Jul 7, 2020 at 11:03

How do you combine all elements in a list python?

The string join[] method returns a string by joining all the elements of an iterable [list, string, tuple], separated by the given separator.

How do I concatenate items in a list to a single string?

Using join[] method to concatenate items in a list to a single string. The join[] is an inbuilt string function in Python used to join elements of the sequence separated by a string separator. This function joins elements of a sequence and makes it a string.

How do you join a list into a string in python?

The most pythonic way of converting a list to string is by using the join[] method. The join[] method is used to facilitate this exact purpose. It takes in iterables, joins them, and returns them as a string. However, the values in the iterable should be of string data type.

How do you join values in a list python?

This function joins elements of a sequence and makes it a string..
Syntax: string_name.join[iterable].
Parameters:.
Return Value: The join[] method returns a string concatenated with the elements of iterable..
Type Error: If the iterable contains any non-string values, it raises a TypeError exception..

Chủ Đề