在Python中,如何在列表中的特定项之前和之后添加项?

在Python中,如何在列表中的特定项之前和之后添加项?,python,python-3.x,Python,Python 3.x,如何在列表中的特定项目之前添加列表中的项目 例如,如果我输入1、2、4、5、6来创建一个列表,我将如何创建一个功能,允许我在特定数字之前添加一个数字,以及在特定数字之后添加一个数字?我知道我必须使用索引和插入,但我不确定如何设置它们。 要获取值的位置,请使用.index() 要添加到特定位置,请使用。插入(idx,value) 要在之前添加,请直接使用其索引;要在之后添加,请使用索引+1 values = [1, 3, 5, 7] # add a 4 before 5 values.inse

如何在列表中的特定项目之前添加列表中的项目

例如,如果我输入1、2、4、5、6来创建一个列表,我将如何创建一个功能,允许我在特定数字之前添加一个数字,以及在特定数字之后添加一个数字?我知道我必须使用索引和插入,但我不确定如何设置它们。

  • 要获取值的位置,请使用
    .index()
  • 要添加到特定位置,请使用
    。插入(idx,value)
要在
之前添加
,请直接使用其索引;要在
之后添加
,请使用
索引+1

values = [1, 3, 5, 7]

# add a 4 before 5
values.insert(values.index(5), 4)
print(values)  # [1, 3, 4, 5, 7]

# add a 10 after 5
values.insert(values.index(5) + 1, 10)
print(values)  # [1, 3, 4, 5, 10, 7]


⚠️ 小心:小心有重复的
.index()
返回值的
第一个
索引

,这就是如何使用
索引/插入
将值添加到列表中,并封装在函数中:

l = [1,2,3,4,5]
def myInsert(lst, value, existingValue, after=False):
    if existingValue not in lst:
        print('Error: ExistingValue not found!')
        return
    
    currentPos = lst.index(existingValue)
    lst.insert(currentPos + 1 if after else currentPos, value)

myInsert(l, 99, 3, after=True)
myInsert(l, 101, 5)  # insert before!
print(l)
输出:

注:

index()
返回项目的第一个位置

到目前为止,您尝试了什么?请输入和输出示例。应该指出,如果元素不是唯一的,那么这将表现得很有趣
[1, 2, 3, 99, 4, 101, 5]