给定一个元素A从python中的列表中找到A的上一个和下一个元素

时间:2019-08-26 08:13:12

标签: python list

我有一个清单

List = ['PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']

我还有另一个列表,

Grade = ['K','4','8']

我想从列表中看到“ K”之前和“ 8”之后的元素,并将其添加到“成绩”中。

预期结果:

Grade = ['K','4','8','PK','9']

4 个答案:

答案 0 :(得分:2)

这可能有效:

Grade = ['K','4','8']
Grade = Grade + [List[List.index(Grade[0]) - 1], List[List.index(Grade[-1]) + 1]]
# ['K', '4', '8', 'PK', '9']

在您的List中获取索引,并将其增加或减少1。

如果ValueError的第一个和最后一个元素不在Grade中,这将引发一个List

答案 1 :(得分:0)

看起来像您需要的。

lst = ['PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
Grade = ['K','4','8']
Grade = Grade + [lst[lst.index(Grade[0])-1], lst[lst.index(Grade[-1])+1]]
print(Grade) # --> ['K', '4', '8', 'PK', '9']

答案 2 :(得分:0)

Grade.insert(Grade.index('8'), l[l.index('8')+1])

或以这种方式处理上一个项目

Grade.insert(Grade.index('K'), l[l.index('K')-1])

最好不要将您的列表称为“列表”,因为这是python中的现有类

答案 3 :(得分:0)

List = ['PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
Grade = ['K','4','8']
List[:List.index(Grade[0])]+ Grade + list(List[List.index(Grade[-1])+1])
#['PK', 'K', '4', '8', '9']