map
map(處理邏輯,可遍歷的對象) 處理序列中的每一個元素,元素個數及位置與原來同樣
javascript
1
2
|
v
=
"ALEX"
print
(
list
(
map
(
lambda
x: x.lower(), v)))
# 結果爲 ['a', 'l', 'e', 'x']
|
更節省代碼。java
1
2
3
4
5
6
7
8
9
|
a
=
[]
def
jianer(array):
for
i
in
array:
a.append(i.lower())
print
(a)
jianer(v)
結果
[
'a'
,
'l'
,
'e'
,
'x'
]
|
filter
filter(處理邏輯,可遍歷對象) 遍歷序列中的每一個元素,判斷每一個元素的布爾值爲True則保留元素python
1
2
3
4
5
6
7
8
9
|
movie_people
=
[
'alex_sb'
,
'wupeiqi_sb'
,
'linhaifeng'
,
'yuanhao_sb'
]
def
filter_test(array):
ret
=
[]
for
i
in
array:
if
not
i.endswith(
'sb'
):
ret.append(i)
return
ret
res
=
filter_test(movie_people)
print
(res)<br>結果<br>[
'linhaifeng'
]
|
1
2
|
movie_people
=
[
'alex_sb'
,
'wupeiqi_sb'
,
'linhaifeng'
,
'yuanhao_sb'
]
print
(
list
(
filter
(
lambda
n: n.endswith(
'sb'
), movie_people)))
# 判斷元素endswith的值爲True,爲True則保留元素<br>結果<br>['alex_sb', 'wupeiqi_sb', 'yuanhao_sb']<br>
|
reduce
from funtools import reduceexpress
reduce(函數,序列,默認空參數) 處理一個序列,而後把序列進行合併操做數據結構

1 num_l = [1, 2, 3, 100] 2 res = 0 3 for num in num_l: 4 res += num 5 print(res) 6 7 8 def reduce_test(array): 9 res = 0 10 for num in array: 11 res += num 12 return res 13 14 ret = reduce_test(num_l) 15 print(ret) 16 17 結果都爲106
1
2
3
4
5
|
from
functools
import
reduce
# reduce 用reduce函數要定義這句話
num_l
=
[
1
,
2
,
3
,
100
]
print
(
reduce
(
lambda
x, y: x
+
y, num_l,
1
))
print
(
reduce
(
lambda
x, y: x
+
y, num_l))
|
其他內置函數總結
用法以下(缺乏的待補充)app
abs 取絕對值 參數能夠是:負數、正數、浮點數或者長整形;只取絕對值,可是不會取整ssh
print
(
abs
(
-
1
))
print
(
abs
(
1
))
結果
1
1
|
all 判斷全部裏面的元素是否爲真值,若是有單個爲空則返回True。參數爲可迭代對象ide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
>>>
all
([
'a'
,
'b'
,
'c'
,
'd'
])
#列表list,元素都不爲空或0
True
>>>
all
([
'a'
,
'b'
, '
', '
d'])
#列表list,存在一個爲空的元素
False
>>>
all
([
0
,
1
,
2
,
3
])
#列表list,存在一個爲0的元素
False
>>>
all
((
'a'
,
'b'
,
'c'
,
'd'
))
#元組tuple,元素都不爲空或0
True
>>>
all
((
'a'
,
'b'
, '
', '
d'))
#元組tuple,存在一個爲空的元素
False
>>>
all
((
0
,
1
,
2
,
3
))
#元組tuple,存在一個爲0的元素
False
>>>
all
([])
# 空列表
True
>>>
all
(())
# 空元組
True
|
any 有一個爲真則爲真,返回True
函數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
>>>
any
([
'a'
,
'b'
,
'c'
,
'd'
])
#列表list,元素都不爲空或0
True
>>>
any
([
'a'
,
'b'
, '
', '
d'])
#列表list,存在一個爲空的元素
True
>>>
any
([
0
, '
', False]) #列表list,元素全爲0,'
',false
False
>>>
any
((
'a'
,
'b'
,
'c'
,
'd'
))
#元組tuple,元素都不爲空或0
True
>>>
any
((
'a'
,
'b'
, '
', '
d'))
#元組tuple,存在一個爲空的元素
True
>>>
any
((
0
, '
', False)) #元組tuple,元素全爲0,'
',false
False
>>>
any
([])
# 空列表
False
>>>
any
(())
# 空元組
False
|
bin 十進制轉二進制
post
1
2
3
|
print
(
bin
(
5
))
0b101
# 0b表示二進制
|
hex 十進制轉十六進制
1
2
3
|
print
(
hex
(
74
))
0x4a
|
oct 十進制轉八進制
1
2
3
|
print
(
oct
(
18
))
0o22
|
bool 判斷布爾值
bytes 編碼 ascll碼不能編譯中文,會報錯
1
2
3
4
5
6
|
name
=
'你好'
print
(bytes(name,encoding
=
'utf8'
))
# 手動把字符串編碼,轉爲二進制
print
(bytes(name,encoding
=
'utf8'
).decode(
'utf8'
))
# 須要把字符串進行編碼,再解碼(用什麼方式編碼就用什麼解碼,decode)
b
'\xe4\xbd\xa0\xe5\xa5\xbd'
你好
|
dir 顯示函數內置屬性和方法
1
2
3
|
print
(
dir
(
dict
))
[
'__class__'
,
'__contains__'
,
'__delattr__'
,
'__delitem__'
,
'__dir__'
,
'__doc__'
,
'__eq__'
,
'__format__'
,
'__ge__'
,
'__getattribute__'
,
'__getitem__'
,
'__gt__'
,
'__hash__'
,
'__init__'
,
'__iter__'
,
'__le__'
,
'__len__'
,
'__lt__'
,
'__ne__'
,
'__new__'
,
'__reduce__'
,
'__reduce_ex__'
,
'__repr__'
,
'__setattr__'
,
'__setitem__'
,
'__sizeof__'
,
'__str__'
,
'__subclasshook__'
,
'clear'
,
'copy'
,
'fromkeys'
,
'get'
,
'items'
,
'keys'
,
'pop'
,
'popitem'
,
'setdefault'
,
'update'
,
'values'
]
|
divmod 獲得商和餘數(可用做分頁用)
1
2
3
|
print
(
divmod
(
10
,
3
))
(
3
,
1
)
|
eval 一、提取字符串的數據結構 二、做字符串中的數據運算
1
2
3
4
5
6
|
dic
=
{
'name'
:
'alex'
}
#字典類型轉成字符串
dic_str
=
str
(dic)
print
(dic_str)
d1
=
eval
(dic_str)
#eval:把字符串中的數據結構給提取出來
print
(d1)
|
express = "1+2*(3/3-1)-2" print(eval(express)) 輸出 -1,0 第二種數據運算
hash 可hash的數據類型即不可變數據類型,不可hash的數據類型便可變數據類型
hash的做用:從下載的軟件判斷是否被改變,經過對比hash值,便知道
help 查看函數的用法的詳細信息
isinstance 判斷類型
1
2
3
4
5
6
7
8
9
10
11
|
print
(
isinstance
(
1
,
int
))
#判斷是否是int類型
print
(
isinstance
(
'abc'
,
str
))
#判斷字符串
print
(
isinstance
([],
list
))
#判斷列表
print
(
isinstance
({},
dict
))
#判斷字典
print
(
isinstance
({
1
,
2
},
set
))
#判斷集合
True
True
True
True
True
|
locals
def test(): age = "18" print(globals()) # 輸出全局變量 print(locals()) # 輸出上一層的變量 test() {'test': <function test at 0x000001C869BB9598>, '__file__': 'C:/Users/lenovo/PycharmProjects/untitled/pythons3/內置函數.py', '__spec__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C869B56CF8>, '__builtins__': <module 'builtins' (built-in)>, '__package__': None, '__cached__': None, '__name__': '__main__', '__doc__': None} {'age': '18'}
max(最大)和min(最小) 遍歷比較,不一樣類型間不能比較
list = [99,55,23,11,68] print(max(list)) print(min(list)) 99 11
age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30} print(max(age_dic.values())) # 取出最大年齡 print(max(age_dic)) # 默認比較key 100 zsc_age

1 age_max = [ 2 {"name":"alex","age":25}, 3 {"name":"tom","age":30}, 4 {"name":"tony","age":55} 5 ] 6 li = [] 7 for item in age_max: 8 li.append(item["age"]) 9 print(li) 10 age = {"alex":25,"tom":30,"tony":55} 11 print(max(li)) 12 max(age_max,key=lambda dic:dic["age"]) 13 print(max(age_max,key=lambda x:x["age"])) 14 15 [25, 30, 55] 16 55 17 {'name': 'tony', 'age': 55}
zip 一一對應分配
print(list(zip(('a', 'n', 'c'), (1, 2, 3)))) print(list(zip(('a', 'n', 'c'), (1, 2, 3, 4)))) print(list(zip(('a', 'n', 'c', 'd'), (1, 2, 3)))) [('a', 1), ('n', 2), ('c', 3)] [('a', 1), ('n', 2), ('c', 3)] [('a', 1), ('n', 2), ('c', 3)]
p={'name':'alex','age':18,'gender':'none'} print(list(zip(p.keys(),p.values()))) print(list(p.keys())) #取keys print(list(p.values())) #values print(list(zip(['a','b'],'12345'))) # zip傳倆個參數,都是序列。即可一一對應 [('age', 18), ('gender', 'none'), ('name', 'alex')] ['age', 'gender', 'name'] [18, 'none', 'alex'] [('a', '1'), ('b', '2')]
max和zip結合使用
age = {"alex":25,"tom":30,"tony":55} print(list(zip(age.values(),age.keys()))) # 一一對應 print(max(zip(age.values(),age.keys()))) # 一一對應取最大值 [(55, 'tony'), (25, 'alex'), (30, 'tom')] (55, 'tony')
dic={'age1':18,'age2':10} print(max(dic)) # 比較的是key print(max(dic.values())) # 比較的是值,可是不知道對應的哪一個key print(max(zip(dic.values(),dic.keys()))) # 經過zip,即可以獲取到值最大,對應的是哪一個key age2 18 (18, 'age1')
pow 幾的幾回方
print(pow(3,3)) print(pow(2,3,2)) 27 # 3**3 3的3次方 0 # 2**3%2 2的3次方取餘
reversed 反轉
li = [1,2,3,4] print(list(reversed(li))) # 反轉 [4, 3, 2, 1]
round 四捨五入
print(round(4.3)) 4
set 變集合,記得集合的特性
print(set("hello")) {'o', 'l', 'h', 'e'}
slice 切片,能夠指定步長
l='hello' s1=slice(3,5) # 切片 取3到5的元素 s2=slice(1,4,2) # 切片,指定步長爲2 print(l[3:5]) print(l[s1]) # 切片 print(l[s2]) print(s2.start) # 開始 print(s2.stop) # 結束 print(s2.step) # 步長 lo lo el 1 4 2
sorted 排序(排序本質上就是在比較大小,不一樣類型間不能比較)
l=[3,2,1,5,7] l1=[3,2,'a',1,5,7] print(sorted(l)) # 排序 # print(sorted(l1)) # 會報錯 [1, 2, 3, 5, 7]

people=[ {'name':'alex','age':1000}, {'name':'wupei','age':10000}, {'name':'yuanhao','age':9000}, {'name':'linhaifeng','age':18}, ] print(sorted(people,key=lambda dic:dic['age'])) # 按年齡進行排序 [{'name': 'linhaifeng', 'age': 18}, {'name': 'alex', 'age': 1000}, {'name': 'yuanhao', 'age': 9000}, {'name': 'wupei', 'age': 10000}]

name_dic={ 'abyuanhao': 11900, 'alex':1200, 'wupei':300, } print(sorted(name_dic)) #按key排序 print(sorted(name_dic,key=lambda key:name_dic[key])) # 取出字典的values排序 print(sorted(zip(name_dic.values(),name_dic.keys()))) # 按價格從低到高排序,並一一對應 ['abyuanhao', 'alex', 'wupei'] ['wupei', 'alex', 'abyuanhao'] [(300, 'wupei'), (1200, 'alex'), (11900, 'abyuanhao')]
sum 求和
1 li = [1,2,3,4] 2 print(sum(li)) 3 print(sum(range(101))) 4 5 10 6 5050
type 判斷數據類型

msg = "123" if type(msg) is str: msg = int(msg) res = msg+1 print(res) 124
vars
裏面若是沒有參數,和locals用法相同

def test(): name = "病毒尖兒" print(locals()) print(vars()) test() {'name': '病毒尖兒'} {'name': '病毒尖兒'}
若是裏面有一個參數,查看某一個方法,並顯示成字典的類型

print(vars(int)) 內容過多,再也不添加,以字典的形式表現
import 導入模塊(就是導入一個py文件)
粗略用法,不能導入字符串類型(之後可能會這種需求)

1 # 一、先建立一個test.py的文件 2 寫下一下內容 3 def say_hi(): 4 print("你好,林師傅") 5 # 若是想在別的地方調用這個模塊(這個test.py文件) 6 7 import test 8 test.say_hi() 9 10 結果 11 12 你好,林師傅
__import__ 能夠導入有字符串模塊兒
粗略用法

1 # 一、先建立一個test.py的文件 2 寫下一下內容 3 def say_hi(): 4 print("你好,林師傅") 5 # 若是想在別的地方調用這個模塊(這個test.py文件) 6 7 module_name='test' 8 m=__import__(module_name) #有字符串的模塊 9 m.say_hi() 10 11 結果 12 13 你好,林師傅
這裏只是對模塊粗略進行解釋。未完,待續……