8

我是一个 Python 菜鸟,我需要一些帮助来解决一个简单的问题。

我需要做的是创建一个包含 3 个项目的列表,并在每个项目之前和之后添加空格。

例如:l1 = ['a', 'bb', 'c']
应转化为:[' a ',' bb ',' c ']

我试图写这样的东西:

lst = ['a', 'bb', 'c']
for a in lst:
    print '  a  '

...等等其他元素,但我得到一个语法错误。谁能建议我一种可行的方法来做到这一点?谢谢。

4

7 回答 7

13

与往常一样,使用列表推导

lst = [' {0} '.format(elem) for elem in lst]

这将字符串格式化操作应用于每个元素,添加空格。如果您使用 python 2.7 或更高版本,您甚至可以省略0替换字段中的 (花括号)。

于 2012-10-15T09:25:49.573 回答
6
[ ' {} '.format(x) for x in lst ]

编辑python 3.6+:

您可以改用 f 字符串,请参阅文档:https ://www.python.org/dev/peps/pep-0498/

上面的例子看起来像:

[ f' {x} ' for x in lst ]
于 2012-10-15T09:25:57.643 回答
2
lst = ['a', 'bb', 'c']  
lst = [' ' + x + ' ' for x in lst]
于 2012-10-15T09:45:08.623 回答
1
In [44]: l1 = ['a', 'bb', 'c']

In [45]: [' %s '%x for x in l1]
Out[45]: [' a ', ' bb ', ' c ']
于 2012-10-15T09:26:23.497 回答
1

首先缩进你的python代码!接着:

lst = ['a', 'b', 'c']
lst2 = [' ' + a + ' ' for a in lst]
print lst2
于 2012-10-15T09:29:18.373 回答
0

尝试这个:

lst = [' ' + x + ' ' for x in ['a', 'bb', 'c']]
于 2012-10-15T09:25:59.323 回答
0
>>> lst = ['a', 'bb', 'c']
>>> 
>>> [' {} '.format(x) for x in lst]
[' a ', ' bb ', ' c ']
>>> 
于 2012-10-15T09:27:12.977 回答