How do i concatenate two strings in a list in python?

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.6k15 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 concatenate a list of items in Python?

This operation is useful when we have numbers of lists of elements which needs to be processed in a similar manner..
Method #1 : Using Naive Method..
Method #2 : Using + operator..
Method #3 : Using list comprehension..
Method #4 : Using extend[].
Method #5 : Using * operator..
Method #6 : Using itertools.chain[].

Can you concatenate a list in Python?

Python Lists are used to multiple items in one variable. Lists are changeable, ordered and it also allows duplicate values. The values are enclosed in square brackets. You can concatenate Lists to one single list in Python using the + operator.

What is the best way to concatenate strings in Python?

One of the most popular methods to concatenate two strings in Python [or more] is using the + operator. The + operator, when used with two strings, concatenates the strings together to form one.

Chủ Đề