我是Python的新手,需要在一个简单问题上获得一些帮助。
我需要做的是创建一个有3个项目的列表,并在每个项目前后添加空格。
例如:l1 = ['a', 'bb', 'c']
应该被转换为:[' a ',' bb ',' c ']
我在尝试编写以下内容:
lst = ['a', 'bb', 'c']
for a in lst:
print ' a '
…针对其他元素依此类推,但我遇到了语法错误。 有人能建议我一种可行的方法吗?谢谢。
[ ' {} '.format(x) for x in lst ]
针对 Python 3.6+ 版本,可以使用 f-strings 来代替,详见文档:https://www.python.org/dev/peps/pep-0498/
以上示例可改为:
[ f' {x} ' for x in lst ]
lst = ['a', 'bb', 'c']
lst = [' ' + x + ' ' for x in lst]
In [44]: l1 = ['a', 'bb', 'c']
In [45]: [' %s '%x for x in l1]
Out[45]: [' a ', ' bb ', ' c ']
首先要缩进你的Python代码! 然后:
lst = ['a', 'b', 'c']
lst2 = [' ' + a + ' ' for a in lst]
print lst2
.format()
方法,或者在紧急情况下使用%
字符串格式化运算符,而不是连接字符串。这样更加高效。 - Martijn Pieters试试这个:
lst = [' ' + x + ' ' for x in ['a', 'bb', 'c']]
.format()
方法,或者在紧急情况下使用%
字符串格式化运算符,而不是连接字符串。这样更高效。 - Martijn Pieters['a', 'bb', 'c']
替换为任何其他字符串列表,或者用包含列表的变量(例如,你的lst
)来代替。 - Anton Beloglazov.format()
是一种在性能方面更高效的方法。 - Anton Beloglazov>>> lst = ['a', 'bb', 'c']
>>>
>>> [' {} '.format(x) for x in lst]
[' a ', ' bb ', ' c ']
>>>
ValueError: zero length field name in format
的错误。 - Burhan Khalid' {0} '.format(x)
可在所有支持.format()
的版本中使用,因此是更好的答案。 - Burhan Khalid