這是一個(gè)系列文章码党,主要分享python的使用建議和技巧稠肘,每次分享3點(diǎn),希望你能有所收獲荔睹。
1 通過索引刪除列表元素
my_list = range(0, 10)
print my_list
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del my_list[9]
print my_list
# [0, 1, 2, 3, 4, 5, 6, 7, 8]
del my_list[5:8]
print my_list
# [0, 1, 2, 3, 4, 8]
示例中狸演,通過del語句,可以很方便刪除列表中的某個(gè)元素或者部分元素僻他。這里需要注意宵距,指定的索引值不能大于列表最大長度-1,否則會(huì)拋出IndexError異常吨拗,另外消玄,list對(duì)象的pop方法和remove方法也可以刪除元素。
2 清空列表元素
my_list = range(0, 10)
print my_list
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print id(my_list)
# 87838600
del my_list[:]
print my_list
# []
print id(my_list)
# 87838600
清空一個(gè)列表有很多方式可以實(shí)現(xiàn)丢胚,但是借助del語句翩瓜,可以不用生成新的列表對(duì)象。示例中可以看到携龟,清空列表元素前和清空后兔跌,列表的id沒有改變,即沒有生成新的對(duì)象峡蟋,可以繼續(xù)使用該列表坟桅。
3 列表解析(list comprehensions)
my_list = range(0, 10)
even_num_list = [e for e in my_list if not e % 2]
print even_num_list
# [0, 2, 4, 6, 8]
odd_num_list = [e for e in my_list if e % 2]
print odd_num_list
# [1, 3, 5, 7, 9]
# syntax: [ expression for target in iterable lc-clauses ]
列表解析很有用,一行代碼就可以完成很多功能蕊蝗。示例中仅乓,借助列表解析,很方便就從列表中篩選出偶數(shù)和奇數(shù)蓬戚,代碼少且運(yùn)行更快夸楣。如果使用其他方式實(shí)現(xiàn),難免代碼會(huì)多一些,并且性能也會(huì)差一些豫喧。
列表解析語法規(guī)則如下:
[ expression for target in iterable lc-clauses ]
lc-clauses表示以下語句(可以是0個(gè)或者多個(gè)):
for target in iterable if expression
列表解析詳見:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
我的博客即將搬運(yùn)同步至騰訊云+社區(qū)石洗,邀請(qǐng)大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=vfw3ljg3d9co