I'm new to Python and can't find a way to insert a string into a list without it getting split into individual characters:
>>> list=['hello','world'] >>> list ['hello', 'world'] >>> list[:0]='foo' >>> list ['f', 'o', 'o', 'hello', 'world'] What should I do to have:
['foo', 'hello', 'world'] Searched the docs and the Web, but it has not been my day.
9 Answers
To add to the end of the list:
list.append('foo') To insert at the beginning:
list.insert(0, 'foo') 1Sticking to the method you are using to insert it, use
list[:0] = ['foo'] 1Another option is using the overloaded + operator:
>>> l = ['hello','world'] >>> l = ['foo'] + l >>> l ['foo', 'hello', 'world'] 1best put brackets around foo, and use +=
list+=['foo'] >>> li = ['aaa', 'bbb'] >>> li.insert(0, 'wow!') >>> li ['wow!', 'aaa', 'bbb'] Don't use list as a variable name. It's a built in that you are masking.
To insert, use the insert function of lists.
l = ['hello','world'] l.insert(0, 'foo') print l ['foo', 'hello', 'world'] 2You have to add another list:
list[:0]=['foo'] ls=['hello','world'] ls.append('python') ['hello', 'world', 'python'] or (use insert function where you can use index position in list)
ls.insert(0,'python') print(ls) ['python', 'hello', 'world'] 0I suggest to add the '+' operator as follows:
list = list + ['foo']
Hope it helps!