在學習python的時候,會有一些梗非常不適應,在此列舉列表刪除和多重迴圈退出的例子:
列表刪除裡面的坑
比如我們有乙個列表裡面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,100],我想去掉6,可以這樣寫:
nums=[1
,6,6
,3,6
,2,10
,2,100
]for n in nums:
if n==6:
nums.remove(n)
nums.sort(
)print
(nums)
#輸出結果:[1, 2, 2, 3, 6, 10, 100]
排序顯示後列表中還有乙個6,下面是慢動作分解:
index :
0,num:
1index :
1,num:
6before:[1
,6,6
,3,6
,2,10
,2,100
]after:[1
,6,3
,6,2
,10,2
,100
] index :
2,num:
3index :
3,num:
6before:[1
,6,3
,6,2
,10,2
,100
] after:[1
,3,6
,2,10
,2,100
]index :
4,num:
10index :
5,num:
2index :
6,num:
100final:[1
,3,6
,2,10
,2,100
]
用sort排序後如結果所示第一次迴圈到6的時候,下標為1,這時刪除了index[1]=6,
接著在新列表中繼續刪除,index[2]=3,就直接略過了新列表中的index[1]=6,所以最終還有乙個6
python中多重迴圈如何退出
我們在進行巢狀迴圈的時候,需要立刻退出,用break是不行的:
'''
'''def
fun():
for i in
range(3
):for i in
range(10
,13):
print
("inner:"
,i)if i==12:
# return
break
#會迴圈輸出3次
print
("outter:"
,i)print
('end'
)fun(
)
輸出結果如下:
inner:
10inner:
11inner:
12outter:
12inner:
10inner:
11inner:
12outter:
12inner:
10inner:
11inner:
12outter:
12end
解決辦法:直接return或者加變數控制
'''
'''def
fun():
for i in
range(3
):for i in
range(10
,13):
print
("inner:"
,i)if i==12:
return
#break#會迴圈輸出3次
print
("outter:"
,i)print
('end'
)fun(
)
1 inner: 10 2 inner: 11 3 inner: 12
break 規範都是只結束最近一層迴圈的。python 在for用的是迭代器迴圈,i in range(3)並不受i==12影響而結束最外層迴圈,
因為i = 12也只是i的乙個臨時指向而已,python一切皆物件決定,i只是指向值為12的物件的id,
break到外層迴圈會重新指向迭代器range(3)的乙個物件。
所以多重迴圈用break不能退出,我們可以用return來解決。
python列表刪除和多重迴圈退出原理詳解
在學習python的時www.cppcns.com候,會有一些梗非常不適應,在此列舉列表刪除和多重迴圈退出的例子 列表刪除裡面的坑 比如我們有乙個列表裡面有很多相同的值,假如 nums 1,6,6,3,6,2,10,2,100 我想去掉6,可以這樣寫 nums 1,6,6,3,6,2,10,2,10...
python中的while迴圈和for迴圈的使用
while迴圈語句 利用while語句,可以讓乙個 塊一遍又一遍的執行,只要while語句的條件為true時 while語句將會執行。while語句包含幾部分組成 關鍵字條件 求值為true或flase的表示式 換句話說就是判斷語句 以冒號結尾 從新行開始時,縮排的 塊,被稱為 while的子句 用...
python中關於列表插入和刪除操作
list1.extend list2 list1 list2以上兩種格式得到的效果相同。3 insert 能夠向列表中新增乙個元素,並可以在指定位置新增。list.insert 3,a 在列表中第4個位置新增a二 刪除元素列表 1 del 可以將列表中提取出的元素刪除。del list 1 刪除列表...