python 內建函式

2022-07-20 07:39:11 字數 4105 閱讀 1925

#coding=utf-8

from

functools import reduce

alist = [1, 3, 5, 7, 9]#

1.map

def mi(x):

return x**2

print

"map mi結果:

",list(map(mi,alist))

# 1.2

map把元素為int的轉化為字串

print

"元素型別為int的轉為字串:

",list(map(str,alist))# 2

.reduce

# 2.1 把序列[1, 3, 5, 7, 9

]變換成整數13579

def test_reduce(x,y):

return x*10+y

a =reduce(test_reduce,alist)

print

"reduce結果為:",a

# 練習

'''1

.利用map()函式,把使用者輸入的不規範的英文名字,變為首字母大寫,

其他小寫的規範名字。輸入:[

'adam

', '

lisa

', '

bart

'],輸出:['

adam

', '

lisa

', '

bart']:

'''name = ['

adam

', '

lisa

', '

bart']

print

"使用者輸入的不規範的英文名字,變為首字母大寫:

",list(map(str.capitalize,name))# 2

.python提供的sum()函式可以接受乙個list並求和,請編寫乙個prod()函式,可以接受乙個list並利用reduce()求積:

def prod(x,y):

return x*y

print

"接受乙個list並利用reduce()求積:

",reduce(prod,alist)

# 3.利用map和reduce編寫乙個str2float函式,把字串'

123.456

'轉換成浮點數123.456

def str2float(s):

dot = 0

num = 0if"

."ins:

for i,x in

enumerate(s):

if x == "."

: dot = len(s) - i - 1

s = s.replace('

.',''

)

break

else

: s =s

print("s=

",s)

def fn(x,y):

return x * 10 +y

def char2num(s):

return [s]

return reduce(fn,map(char2num,s)) / (10**dot)

a = str2float("

123.456")

print(

"練習3的結果:

",a) # == > 練習3的結果: 123.456# 3

.filter:用於過濾序列和map()類似,filter()也接收乙個函式和乙個序列。和map()不同的是,filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。

def is_odd(x):

return x%2 == 1

print

"奇數有:

",list(filter(is_odd,[1, 2, 4, 5, 6, 9, 10, 15

]))#

3.1把乙個序列中的空字串刪掉,可以這麼寫:

def not_empty(s):

return

s and s.strip()

print

"去掉空字串後:

",list(filter(not_empty,['

a', '', '

b', none, '

c', '

']))

# 練習回數是指從左向右讀和從右向左讀都是一樣的數,例如12321,

909。請利用filter()濾掉非回數:

def is_pal(x):

if str(x)==str(x)[::-1

]:

return

xprint

"回數有:

",list(filter(is_pal,[x for x in range(1,1000

)]))

print

"回數有:

",[x for x in range(1,1000) if str(x)==str(x)[::-1

]]#

4.sorted 排序演算法

s_l = [1,3,6,-20,34

]s_l_1 = ["

abc","

abc","

d","d"

]print

"公升序排列:

",sorted(s_l)

# 4.1

sorted()函式也是乙個高階函式,它還可以接收乙個key函式來實現自定義的排序

print

"自定義排序:

",sorted(s_l,key=abs)

print

"自定義反向排序:

",sorted(s_l,key=abs,reverse=true)

# 4.2

字串排序依照ascii

print

"字串排序:

",sorted(s_l_1)

# 4.3

忽略大小寫排序

print

"忽略字串大小寫排序:

",sorted(s_l_1,key=str.lower)

# 4.4 要進行反向排序,不必改動key函式,可以傳入第三個引數reverse=true:

print

"忽略字串大小寫反向排序:

",sorted(s_l_1,key=str.lower,reverse=true)

# 練習假設我們用一組tuple表示學生名字和成績:l = [('

bob', 75), ('

adam

', 92), ('

bart

', 66), ('

lisa

', 88

)] 請用sorted()對上述列表分別按名字排序:

l = [('

bob', 75),('

adam

', 90), ('

adam

', 92), ('

bart

', 66), ('

lisa

', 88),('

bart

', 100), ('

bart

', 88

)]print

"名字列表為:",l

def top(t):

return t[0

]print

"按照名字排序(預設公升序,名字相同的情況下誰的名字在前誰排在前方):

",sorted(l,key=top)

# 擴充套件1:如果名字相同,按照分數排序(預設公升序)

def by_name_score(t):

return (t[0],t[1

])print

"名字相同,按照分數公升序排序:

",sorted(l,key=by_name_score)

#待補充

print

"名字相同,按照分數降序排列(答案待補充):

",sorted(l,key=by_name_score,reverse=true)

from

operator import itemgetter,attrgetter

python重寫內建函式 python 內建函式

說明 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。語法 zip iterable1,iterable2,引數 iterable 乙個或多...

python內建函式簡稱 Python內建函式詳解

此文參考python文件,然後結合自己的理解,寫下來,一方面方便自己,讓自己好好學習,順便回憶回憶 另一方面,讓喜歡的盆友也參考一下。經查詢,3.6版本總共有68個內建函式,主要分類如下 數 算 7個 型別轉換 24個 序列操作 8個 物件操作 9個 反射操作 8個 變數操作 2個 互動操作 2個 ...

python內建函式使用 python內建函式使用

eval函式執行python表示式,有返回值 eval 1 2 3 4 5 exec函式執行的是python語句,沒有返回值 exec print 123 將字串型別的 編碼.物件能夠通過exec語句來執行或者eval 進行求值,c只是編譯,不執行 code for i in range 10 pr...