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]
答案 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
项目移位一次。