def printline(content,sign):
"""列印一條分割線
:param content: 分割線中你想要填寫的內容 格式:例如:------ 解壓 --------
:param sign: 用什麼符號分割 「-」、「*」。。。
:return:
"""print('{}'.format(sign)*50,end='')
print(content,end='')
print('{}'.format(sign)*50)
"""map :map(函式,可迭代資料,可迭代資料,可迭代資料,''')
: 最主要的作用是並行,以及zip就是用來進行併發運算的、迭代等;
map會 根據指定的函式對指定迭代器進行對映;
map中指定函式的引數個數,與後面的集合數必須對應,但是集合中的個數可以不同
"""printline('map','-')
def addnum(a, b, c, d):
return a + b * c * d
ret = map(addnum, [1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [5, 4, 3, 2, 1], (0, 0, 0, 0, 1))
for i in ret:
print(i) # 1 2 3 4 5 6
def func(x, y):
return x, y
ret = map(func, [1, 2, 3], [1, 2, 4, 5]) # 當個數不匹配時返回 在對應位置返回空值
print(list(ret)) # [(1, 1), (2, 2), (3, 4)]
ret = map(lambda x: x ** 2, [2, 3, 4])
print(list(ret)) # [4, 9, 16]
ret = map(lambda x, y, z: x + y + z, [2, 3, 4], [3, 4, 5], [4, 5, 6])
print(list(ret)) # [9, 12, 15]
"""****************** reduce() **********************
"""printline('reduce','*')
from functools import reduce
def func(a, b):
return a + b
ret = reduce(func, [1, 2, 3, 4, 5]) # 15
print(ret)
"""reduce(函式,可迭代資料,初始值(initial)),在python3之後就不是內建函式了需要匯入
過程:1、取 1、2 ,傳進函式, 得到返回值 3 ;
2、取 3、3 ,傳進函式, 得到返回值 6 ;
1、取 6、4 ,傳進函式, 得到返回值 10 ;
1、取 10、5 ,傳進函式, 得到返回值 15 ;
也就是:從左到右對乙個序列的項累計地應用有兩個引數的函式,以此合併序列到乙個單一值。
"""# 高階 將乙個列表拼成乙個整數
ret = reduce(lambda x, y: x * 10 + y, [1, 2, 3, 4, 5])
print(ret) # 12345
# 再高階
person = (,,
,,
)'''
#這部分**會出錯,報錯內容:typeerror: 'int' object is not subscriptable
def func(p1,p2):
ret = p1['age']+p2['age']
return ret
ret = reduce(func,person)
print(ret)
原因: 在第一執行的時候,p1=,,p2=
p1['age'] = 21 , p2['age'] = 51 返回:72
第二次執行的時候 func函式中第乙個引數p1成了 72,是乙個整數,它就沒有['age']這個鍵了就會報錯
'''# 所以在此我們要設立乙個初始值0,這樣p1就一直是乙個整數了,就不影響執行了
def func(p1,p2):
ret = p1+p2['age']
return ret
ret = reduce(func,person,0)
print(ret) #264
"""zip(): zip(iterable1,iterable2,iterable3,iterable4''')
將可迭代函式作為引數,對應元素打包成乙個元組,並組成乙個物件。如果要迭代的個數一樣,
返回長度與最短可迭代物件相等,返回值是zip型別資料
"""printline('壓縮','-')
a = [1,2,3,4]
b = ['a,','b','c','d']
c = [6,7,8,9,10]
zip1 = zip(a,b)
print(list(zip1),type(zip1)) #[(1, 'a,'), (2, 'b'), (3, 'c'), (4, 'd')] zip2 = zip(a,c)
print(list(zip2)) #[(1, 6), (2, 7), (3, 8), (4, 9)] 按短的來
zip3 = zip(a,b,c)
print(list(zip3)) # [(1, 'a,', 6), (2, 'b', 7), (3, 'c', 8), (4, 'd', 9)]
zip4 = zip(zip1,zip2)
print(list(zip4)) # 將兩個zip物件zip,結果是空
# 解壓 *zip( zip 物件)
printline('解壓','-')
zip5 = zip(a,b)
print(list(zip5)) # 壓縮 [(1, 'a,'), (2, 'b'), (3, 'c'), (4, 'd')]
zip_jie = zip(*zip(a,b)) # 解壓
print(list(zip_jie)) #[(1, 2, 3, 4), ('a,', 'b', 'c', 'd')]
print(list(zip(zip(*zip(a,b))))) # [((1, 2, 3, 4),), (('a,', 'b', 'c', 'd'),)]
# zip 物件是乙個迭代器
printline('zip迭代器','+')
a_b = zip(a,b)
for i in a_b:
print(i) #(1, 'a,') 、(2, 'b')、(3, 'c')、(4, 'd')
print(list(a_b)) #
漢語中「三個三個的,你認識多少?」
三個金念鑫 x n 三個水念淼 mi o 三個火念焱 y n 三個土念垚 y o 三個牛念犇 b n 三個手念掱 p 三個目念瞐 m 三個田念畾 l i 三個馬念驫 bi o 三個羊念羴 sh n 三個犬念猋 bi o 三個鹿念麤 c 三個魚念鱻 xi n 三個貝念贔 b 三個力念劦 lie 三個毛...
mysql 三個正規化
原子性。表的元組不可再拆分成更小的元組。非主鍵必須完全依賴主鍵,而不是僅僅依賴主鍵的一部分。舉個例子,美國銷售軍火的時候,對每一樣 根據國家或地區的不同而給出不同的 建個表看看 create table weapon price wp id unsigned int not null auto in...
NYOJ 三個水杯
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述給出三個水杯,大小不一,並且只有最大的水杯的水是裝滿的,其餘兩個為空杯子。三個水杯之間相互倒水,並且水杯沒有標識,只能根據給出的水杯體積來計算。現在要求你寫出乙個程式,使其輸出使初始狀態到達目標狀態的最少次數。輸入第一行乙個整數n...