這部分的內容不僅僅是用於列表,一般來說其他的序列(比如元祖、字典、集合等)也是可以進行使用的。
(1)any(list):列表list中有乙個元素為邏輯真,則返回true,全為假時則返回false。注意any()返回的是false,在程式設計時要考慮序列為空的情況。
(2)all(list):列表在所有元素都為真時則返回true,否則返回false。注意all()返回的是true,在程式設計時要考慮序列為空的情況。
(3)max(list)或min(list):返回列表list中的最大值或最小值。
(4) enumerate():在列表中迴圈遍歷索引和元素,例:
list = [i for i in 'abcdefg']
for index,value in enumerate(list):
print(index,value)
返回值:
0 a
1 b2 c
3 d4 e
5 f6 g
(5)求和sum函式:
print(sum([1,2,3,4]))
返回值10
(6)篩選函式filter(function,sequence):對sequence進行篩選,滿足條件的返回給迭代器,function的返回值只能是true或false。
例子:找出1-22之間技能被2整除也可以被3整除的數
print(list(filter(lambda x: x % 2 == 0 and x % 3 == 0,range(1,23))))
返回值[6, 12, 18]
(7)map(function,sequence):把sequence中的每乙個元素執行function操作,將結果通過迭代器返回。
例子,返回1-10的立方值。
print(list(map(lambda x:x**3,range(1,11))))
返回值如下:
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
另外,map也支援多個sequence,這就要求function也支援相應數量的引數輸入:
#(1到9的數字,步長為2)+(1到4的值,步長為1)
from operator import addprint(list(map(add,range(1,10,2),range(1,5))))
返回值如下:
[2, 5, 8, 11]
當兩邊的資料數量一致時,返回數量為該數量;當兩邊數量不一致時,返回結果取數量較低值。
(8)reduce(functiong,list[,init]):如果提供了init引數,第一輪將init和list[0]用function進行處理,得到的結果和list[1]在經過function函式處理,以此類推,知道結束:如果不提供init引數,則第一輪處理直接從list中取出兩個元素(list[0]和list[1])用function函式進行處理。
from functools import reduce
from operator import add
print(reduce(add,range(1,11)))
print("加入init")
print(reduce(add,range(1,11),20))
結果如下:
55
加入init
75
Python3 list注意的事項
list1 1,2,3,4 list2 list1 print list2 print id list1 id list2 列印出的結果如下 1,2,3,4 2087137645832 2087137645832可以看出,使用等號確實可以給列表賦值,但其在記憶體中的id是一樣的,說明實際上這其實是同...
python3 list列表的常用方法
python3 list列表的常用方法 li 1,2,3 clera 清除整個列表,慎用 li.clear help li.clear clear method of builtins.list instance l.clear none remove all items from l copy 是...
Prufer序列相關
最近做到一些題,用到了prufer序列,挺有用的,在這裡學習一下。prufer數列是無根樹的一種數列,通過乙個prufer序列可以唯一表示一棵頂點帶標號的無根樹,點數為n的樹轉化來的prufer數列長度為n 2,它有很多的性質 一種生成prufer序列的方法是迭代刪點,直到原圖僅剩兩個點。對於一棵頂...