在不将字符串拆分为单个字符的情况下将字符串插入列表中

128

我是Python的新手,找不到一种方法将字符串插入列表而不会被拆分成单个字符:

>>> list=['hello','world']
>>> list
['hello', 'world']
>>> list[:0]='foo'
>>> list
['f', 'o', 'o', 'hello', 'world']

我应该怎么做才能实现以下功能:

['foo', 'hello', 'world']

查阅了文档和网络,但今天并不顺利。


这个链接的问题比这个问题更新,那么为什么将这个问题关闭为更新问题的重复? - Dheeraj Vepakomma
1
年龄不是决定关闭方向的决定因素。另一个问题及其答案得到更好的接受,因此通常被认为是更好的关闭目标。 - Mark Rotteveel
9个回答

162

要将内容添加到列表末尾:

list.append('foo')

插入到开头:

list.insert(0, 'foo')

4
我相信大多数人都知道这一点,但是只是补充一下:使用 list1.append('foo')list1.insert(0, 'foo') 这样的方法赋值给 list2 会使 list2 的值为 None。appendinsert 都是修改它们所用的列表而不是返回新列表的方法。 - evantkchong

23

这个切片赋值插入比Raffe Kettler的list.insert()更快。参见向2维数组附加列。虽然通常这并不重要。 - ChaimG

16

另一个选项是使用重载的 + 运算符

>>> l = ['hello','world']
>>> l = ['foo'] + l
>>> l
['foo', 'hello', 'world']

1
刚刚看到你也可以用它在末尾添加: l += ['foo'] - Toni Homedes i Saun

10
最好在foo周围加上括号,并使用+=。
list+=['foo']

5
>>> li = ['aaa', 'bbb']
>>> li.insert(0, 'wow!')
>>> li
['wow!', 'aaa', 'bbb']

4
不要使用“list”作为变量名。这是一个内置函数,你正在掩盖它。
要插入,请使用列表的插入函数。
l = ['hello','world']
l.insert(0, 'foo')
print l
['foo', 'hello', 'world']

这不是完全正确的。insert()需要第二个参数。 - Rafe Kettler
@RafeKettler 哎呀,append 是没有位置参数的那个。 - Spencer Rathbun

2
您需要添加另一个列表:
list[:0]=['foo']

0
ls=['hello','world']
ls.append('python')
['hello', 'world', 'python']

或者(在列表中可以使用索引位置的情况下使用insert函数)
ls.insert(0,'python')
print(ls)
['python', 'hello', 'world']

-2
我建议添加如下的“+”运算符: list = list + ['foo']
希望能对你有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接