# 元祖和列表
# list:將一個可迭代對象轉化成列表,(若是是字典,默認將key做爲列表的元素)
# tuple:將一個可迭代對象轉化成元祖,(若是是字典,默認將key做爲元祖的元素)
# reversed:將一個序列翻轉,並返回此翻轉序列的迭代器。
# li=[1,6,2,9,4,5] # reversed(li) # print(reversed(li)) # for i in reversed(li): # print(i) # # s1='sgdshh' # for i in reversed(s1): # print(i) # dic={'name':'alex','age':10000,'hobby':'oldwomen'} # reversed(dic) #字典不可翻轉 # for i in reversed(dic): # print(i)
# slice: 構造一個切片對象,用於列表的切片
# li=[i for i in range(10)] # print(li) # li=[1,2,3,4,0,9,8,7,6,5] # for i in range(li): # print(i) # for i,j in enumerate(li,1): # print(i,j) # range # li=[i for i in range(10)] # l2=li[:5:2] # l3=[i for i in range(10,20)] # sli_obj=slice(0,5,2) #構造一個切片對象,用於列表的切片 # print(l3[sli_obj]) # l4=['a','b','c','d','e'] # print(l4[sli_obj])
# bytes: unicode-->bytes類型
# a1='太白' # print(a1.encode('utf-8')) #編碼 # print(a1.encode('utf-8').decode('utf-8')) #解碼 # bytes: unicode-->bytes類型 # a1='太白' # b1=bytes(a1,encoding='utf-8') #編碼 # print(b1)
# ord:輸入字符找到該字符的字符編碼 unicode 的位置
# print(ord('a')) # print(ord('中'))
# chr:輸入位置數字找到其對應的字符 unicode
# print(chr(97)) # print(chr(20013))
# ascii:在ascii碼中,則返回該值,不在則返回他在unicode的位置(十六進制)
# print(ascii('a')) # print(ascii('中'))
# repr:返回一個對象的string形式
# print(repr('alex')) #打印括號內所有的內容 # print(repr("{'alex':'SB'}"))
# 重點:repr(),json pickle 序列化模塊 特殊字符串,python 字符串的區別 # 格式化輸出 # msg='alex 是 %r 的人'%('德高望重') #格式化輸出,r 輸出括號內所有的內容 # print(msg)
# sorted:對全部可迭代對象進行排序操做
# l1=[4,2,1,5,9,0,7,9,5,4,2] # # l1.sort() #對原列表操做 # # print(l1) # # print(sorted(l1)) #造成一個新列表 # print(l1) #原列表不變 # l2=[(1,1000),(2,18),(4,250),(3,500)] # print(sorted(l2)) #根據列表元素內元素的首個數字排列 # def func(x): # return x # print(sorted(l2,key=func)) # def func(x): # return x[1] # print(sorted(l2,key=func)) #根據列表元素內元素的第二個數字排列 # def func(x): # return x[1] # print(sorted(l2,key=func,reverse=True)) #根據列表元素內元素的第二個數字反轉排列
#zip:函數用於將可迭代的對象做爲參數,將對象中對應的元素打包成一個個元祖
# ,而後返回一個個元祖組成的列
# # 拉鍊方法表 # l1=[1,2,3,4,5] # l2=('alex','日天','wusir') # l3={'name':'日天','age':18,'hobby':'tea','weight':100} # print(zip(l1,l2,l3)) #迭代器 # print(next(zip(l1,l2,l3))) #迭代器取值 # for i in zip(l1,l2,l3): # print(i) #迭代器 for 循環 # # print(list(zip(l1,l2,l3))) #獲得一個個元祖組成的列表
# filter :過濾,迭代器
# li=[i for i in range(10)] # def func1(x): # return x%2==0 # print(list(filter(func1,li))) #用法:filter(調用函數,迭代對象)
# map 會根據提供的函數對指定的序列作映射,循環模式
# li=[1,2,3,4] # print(i for i in li) # def func(x):return x**2 # print(list(map(func,li))) #用法:map(調用函數,迭代對象
# print() sum reversed # key: min max map sorted filter zip
#匿名函數 lambda 表達式
# 普通函數 有且只有返回值的函數才能夠用匿名函數進行簡化,一行代碼
# func2=lambda x:x*2 # def func2(x): # return x*2 # print(func2(6)) # func2=lambda x,y:x+y # print(func2(1,2)) # l2 = [(1,1000),(2,18),(4,250),(3,500)] # def func(x): # return x # print(sorted(l2,key=func)) # print(sorted(l2,key=lambda x:x)) #匿名函數,根據第一個元素的第一個數字排列 # print(sorted(l2,key=lambda x:x[1]))
# 匿名函數格式: 函數名=lambda x:條件
# dic={'k1':10,'k2':100,'k3':30}
#1,利用內置函數匿名函數將dic按照值進行排序。
# l1=[1,5,7,4,8]
# 利用內置函數匿名函數 計算列表的每一個數的2倍。
# l2=[5,8,11,9,15]
# 利用內置函數匿名函數,將值大於10的留下來。
# def func(x): # return x[1] # print(sorted(dic.items(), key= func)) # print(sorted(dic.items(), key=lambda x:x[1])) # def func(x): # return x*2 # print(list(map(func,l1))) # print(list(map(lambda x:x*2,l1))) # def func(x): # return x>10 # print(list(filter(func,l2))) # print(list(filter(lambda x:x>10,l2)))
# 遞歸函數
# def func(): # print(666) # func() # func()
# 查看循環了多少次
# def func(n): # print(n) # n+=1 # func(n) # func(1)
# alex 比 wusir 大兩歲 n = 4
# wusir 比日天 大兩歲 n= 3
# 日天 比太白 大兩歲 n = 2
# 太白 24歲 n = 1
# def age(n): # if n==1: # return 24 # else: # return age(n-1)+2 # print(age(4))