插入元素Python

时间:2016-12-07 15:57:32

标签: python python-3.x

lst=[5,6,7,8,9]
v=10
for item in lst:
        if item<v:
            lst.insert(0,v)
print(lst)

我想在索引0处插入10,如果列表中的所有元素都在10以下,我不是每次都试图插入10

所以看起来应该是这样的:[10,5,6,7,8,9]

1 个答案:

答案 0 :(得分:0)

您在原始列表的开头插入相同的v值,具体取决于原始值的数量是否小于v。在这种情况下,保留插入顺序是没有意义的。

所有插入的值都相同,并且会添加到不会更改的原始列表中。

那么为什么不使用这个

lst = [5, 6, 7, 8, 9]
v =  10
count = 0
for item in lst:
    if item < v:
        count += 1
new_lst = [v] * count + lst
print(new_lst)

结果

>>> [10, 10, 10, 10, 10, 5, 6, 7, 8, 9]

修改:根据进一步说明更新答案

  

如果所有中的元素,我想在索引0处插入10   列表小于10,我不是每次都试图插入10

lst = [5, 6, 7, 8, 9]
v = 10
for item in lst[:]:
  if item < v:
    lst.insert(0, v)
    break
print(lst)

结果

>>> [10, 5, 6, 7, 8, 9]

如果单个项目小于v,则更新的代码只会在索引0处插入v一次。当满足item < v条件时,for循环结束而不检查任何剩余项。否则,如果所有值都不小于v,您将遍历整个列表而不进行任何更改。

请注意,我在此处使用了insert方法,因为此代码只会将所有lst项目移位一次。