在列表中元素的开头添加2个空格

时间:2019-08-27 09:38:36

标签: python

我有以下列表1:

['mama', 'papa', 'jose']

我想在列表中每个元素的开头添加2个空格。 为此,我尝试了以下方法:

[x.rjust(2, ' ') for x in list1]

但是输出保持不变:

['mama', 'papa', 'jose']

所需的输出将是:

['  mama', '  papa', '  jose']

我做错了什么?

4 个答案:

答案 0 :(得分:0)

对于rjust():

print([x.rjust(len(x) + 2) for x in ['mama', 'papa', 'jose']])

您需要通过len()来传递最终长度,以找到当前元素的长度ans,然后再加上2以得到2个空格。

另一个班轮:

print(["  "+x for x in ['mama', 'papa', 'jose'] ])

或者您可以这样做:

arr = ['mama', 'papa', 'jose']
for i in range(len(arr)):
  arr[i] = "  " + arr[i]
print(arr)

请注意arr[i] = " " + arr[i]  会在列表的每个条目中添加空格

答案 1 :(得分:0)

似乎您误解了rjust的功能(请检查docs)。如果只想在字符串中添加前缀,则可以使用f-strings Python 3.6> ):

l = ['mama', 'papa', 'jose']

[f' {s}' for s in l]
# ['  {}'.format(s) for s in l] for python 3.6<
[' mama', ' papa', ' jose']

答案 2 :(得分:0)

您可以使用map,lambda:

data = ['mama', 'papa', 'jose']

print (list(map(lambda x:  "  " + x, data)))

输出:

['  mama', '  papa', '  jose']

答案 3 :(得分:0)

尝试一下。

l = ['mama', 'papa', 'jose']
l = ["  "+x for x in l]