📜  Python|字符串列表的前导和尾随填充(1)

📅  最后修改于: 2023-12-03 15:04:25.531000             🧑  作者: Mango

Python | 字符串列表的前导和尾随填充

在 Python 编程中,我们可能需要对一个字符串列表进行前导或者尾随填充以满足特定需求。这种操作在数据预处理和机器学习等领域经常会用到。

方法一:使用循环

一种实现字符串列表前导或者尾随填充的方法是使用循环和字符串拼接。具体步骤如下:

  • 首先,先定义需要填充的符号和填充的长度。这里我们以空格符和 5 位长度为例。
  • 然后,我们可以使用循环将每一个列表元素进行填充操作。
  • 最后,将填充后的元素放入新列表中。
# 前导填充
my_list = ['Python', 'is', 'a', 'great', 'language']
pad_symbol = ' '
pad_len = 5

new_list = []
for word in my_list:
    new_word = pad_symbol*(pad_len - len(word)) + word
    new_list.append(new_word)
    
print(new_list)
# [' Python', '    is', '     a', ' great', 'language']

# 尾随填充
new_list = []
for word in my_list:
    new_word = word + pad_symbol*(pad_len - len(word))
    new_list.append(new_word)
    
print(new_list)
# ['Python     ', 'is        ', 'a         ', 'great     ', 'language  ']
方法二:使用列表推导式和字符串方法

另外一种方法是使用列表推导式和字符串方法,这种方法可以减少代码行数和程序时间复杂度,更加高效。

# 前导填充
new_list = [ pad_symbol*(pad_len - len(word)) + word for word in my_list ]
print(new_list)
# [' Python', '    is', '     a', ' great', 'language']

# 尾随填充
new_list = [ word + pad_symbol*(pad_len - len(word)) for word in my_list ]
print(new_list)
# ['Python     ', 'is        ', 'a         ', 'great     ', 'language  ']
方法三:使用 string.format 和 f-string

Python 还提供了一些内置方法和新特性来进行字符串填充。其中 string.format 和 f-string 是两个非常方便的方法。

# 前导填充
new_list = ['{:<{}}{}'.format(word, pad_len, '') + word for word in my_list ]
print(new_list)
# [' Python', '    is', '     a', ' great', 'language']

new_list = [f"{'':<{pad_len}}{word}" for word in my_list ]
print(new_list)
# [' Python', '    is', '     a', ' great', 'language']

# 尾随填充
new_list = ['{}{:>{}}'.format(word, '', pad_len - len(word)) + word for word in my_list ]
print(new_list)
# ['Python     ', 'is        ', 'a         ', 'great     ', 'language  ']

new_list = [f"{word}{'':>{pad_len-len(word)}}" for word in my_list ]
print(new_list)
# ['Python     ', 'is        ', 'a         ', 'great     ', 'language  ']

总之,Python 提供了多种方法来进行字符串列表的前导和尾随填充操作。你可以根据实际需求选择合适的方法来进行操作。