插入 python 列表中

insert in list of python

我想在 list_of_words 中插入列表包含一些值,这样任何列表都可以放在 list_of_words 的位置 -2,但数据没有按我想要的顺序排列

def h(i):
a, b = i.split(';')
list_of_words = [['z', -1],['z', len(b)]]
for key, word in enumerate(a):
    if b.find(word) != -1:
        list_of_words.insert(-2, [word, b.find(word)])
print list_of_words

h("XMJYAUZ;MZJAWXU")

列表

list_of_words = [['z', -1], ['z', 7]]

假设在 运行 代码之后

list_of_words = [['z', -1], ['X', 5], ['M', 0], ['J', 2], ['A', 3], ['U', 6], ['Z', 1], ['z', 7]]

但是

list_of_words = [['X', 5], ['M', 0], ['J', 2], ['A', 3], ['U', 6], ['Z', 1], ['z', -1], ['z', 7]]

为什么会这样

如果你想把一个项目放在列表中的-2位置,你需要使用

list_of_words.insert(-1, [word, b.find(word)])

而不是

list_of_words.insert(-2, [word, b.find(word)])

因为项目将被插入 之前 提供的位置而不是之后。

完整代码:

def h(i):
    a, b = i.split(';')
    list_of_words = [['z', -1], ['z', len(b)]]
    for word in a:
        if word in b:
            list_of_words.insert(-1, [word, b.find(word)])
    print list_of_words

h("XMJYAUZ;MZJAWXU")