如何不使用循环将整数b重复c次插入Python列表的中间位置
你现有方案的问题根源是list.insert()方法仅支持单次插入单个元素:
- 传入
b*c时会先执行整数乘法得到单个数值,仅插入1个计算后的元素 - 传入
[b]*c时会把整个列表作为单个元素插入,最终出现嵌套结构
你可以用列表切片拼接实现需求,全程不需要使用循环,直接拆分列表为前后两部分,中间拼接重复的目标元素列表即可:
# 计算中间索引 mid = len(listA) // 2 # 拼接得到符合要求的扁平列表 listA = listA[:mid] + [b] * c + listA[mid:] print("Your New List: ", listA)
用你给出的输入测试:listA = [1,2,3,4,5]、b = 2、c = 3
计算得到mid = 5//2 = 2,拼接后结果为[1,2] + [2,2,2] + [3,4,5],正好是你期望的[1,2,2,2,2,3,4,5]。
内容的提问来源于stack exchange,提问作者CrowMasteR
相关产品推荐
相关产品推荐

