- 列表、元組、字符串(016)
list([iterable]) 把可迭代對象轉換爲列表
tuple([iterable]) 把可迭代對象轉換爲元組
str(obj) 把對象轉換爲字符串
迭代:重複反饋過程的活動 每次迭代的結果會作爲下次迭代的參數
b='盧本偉牛逼'
b=list(b)
print(b)
['盧', '本', '偉', '牛', '逼']
b=(1,2,3,4,5,6,2)
b=list(b)
print(b)
[1, 2, 3, 4, 5, 6, 2]
len()返回長度
max()返回參數中的最大值 min() 最小 但要保證數據類型統一
sum(iterable[,start=0]) 返回序列iterable和可選參數start的總和
b=(1,2,3,4,5,6,2)
print(sum(b))
print(sum(b,12))
~~~~~~~~~~~~~~~~~~~~~
23
35
sorted(numbers) 從小到大排序
b=(1,2,3,4,5,6,2)
print(sorted(b))
~~~~~~~~~~~~~~~~
[1, 2, 2, 3, 4, 5, 6]
reversed()返回一個反轉的迭代器
b=(1,2,3,4,5,6,2)
print(reversed(b))
print(list(reversed(b)))
~~~~~~~~~~~~~~~~~
<reversed object at 0x0000029B1E1EFBB0>
[2, 6, 5, 4, 3, 2, 1]
enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合爲一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。
enumerate(sequence, [start=0])
- sequence -- 一個序列、迭代器或其他支持迭代對象。
- start -- 下標起始位置。
利用enumerate返回的位置來縮短for循環
b=(1,2,3,4,5,6,2)
print(list(enumerate(b)))
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 2)]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>i = 0
>>>seq = ['one', 'two', 'three']
>>>for element in seq:
... print(i, seq[i])
... i += 1
~~~~~~~~~~~~~~
0 one
1 two
2 three
>>>seq = ['one', 'two', 'three']
>>>for i, element in enumerate(seq):
... print(i, seq[i])
~~~~~~~~~~~~~~~~~~~~~~~
0 one
1 two
2 three
zip(a,b) 從左開始,兩兩一組,長度與最短的一致
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一個對象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 轉換爲列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # 與 zip 相反,zip(*) 可理解爲解壓,返回二維矩陣式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
-
函數
收集參數 可能寫之前也不知道需要多少個參數
def idontknow(*params):
print('參數的長度是:',len(params));
print('第二第三個參數分別是',params[1],'+',params[2])
idontknow(1,2,'盧本偉',3.14,557)
~~~~~~~~~~~~~~~~~~~~~~~~
參數的長度是: 5
第二第三個參數分別是 2 + 盧本偉
閉包
def FunX(x):
def FunY(y):
return x*y
return FunY
i=FunX(8)
print(FunX(8))
print(i) #可看出i和FunX(8)一樣
print(FunX(8)(5))
print(i(5))
~~~~~~~~~~~~~
<function FunX.<locals>.FunY at 0x0000024629A74280>
<function FunX.<locals>.FunY at 0x0000024629A741F0>
40
40
~~~~~~~~~~~~~~~~
強制轉換爲非局部變量
filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象,如果要轉換爲列表,可以使用 list() 來轉換。
該接收兩個參數,第一個爲函數,第二個爲序列,序列的每個元素作爲參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。
print(list(filter( x % 2, range(10) )))
報錯 x沒有定義
print(list(filter(lambda x : x % 2, range(10) )))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[1, 3, 5, 7, 9]