gpt4 book ai didi

python - Python 列表两侧的边缘填充

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:05 26 4
gpt4 key购买 nike

将 Python list 填充到特定长度的最佳方法是什么,方法是在开始处重复起始元素,在结尾处重复结束元素?

例如,我有以下 5 个元素的列表:

['a', 'b', 'c', 'd', 'e']

我想在它的两边进行边缘填充,使其新长度为 10,产生

# either
['a', 'a', 'a', 'b', 'c', 'd', 'e', 'e', 'e', 'e']

# or
['a', 'a', 'a', 'a', 'b', 'c', 'd', 'e', 'e', 'e']

(当目标长度减去当前长度为奇数时,如上例所示,我不介意开始和结束元素中的哪一个比另一个多重复一次,以便正确地填充列表到目标长度。)

关于 SO(例如 hereherehere)还有其他几个相关问题,但所有这些问题都只涉及一侧的零填充(或类似问题)。我特别询问两侧的边缘填充

最佳答案

我认为你的答案很好,我唯一要做的改进是使用 itertools 迭代器来提高效率,如果这是一个考虑的话:

from itertools import chain, repeat

my_list = ['a', 'b', 'c', 'd', 'e']
final_len = 10

diff = final_len - len(my_list)
left = diff // 2
right = diff - left
result = list(chain(repeat(my_list[0], left), my_list, repeat(my_list[-1], right)))

关于python - Python 列表两侧的边缘填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com