015_內置函數2

1,數據類型:int bool ...
   數據結構:dict tuple list set strhtml

2,reversed(),reverse()  反轉python

  2.1,#reverse()   反轉,在原表反轉,即修改原表編程

lis = [1,2,3,4,5]
lis.reverse()
print(lis)

  2.2,#reversed()    也是反轉,可是不改變原表且返回一個迭代器數組

lis = [1,2,3,4,5]
lis2 = reversed(lis)
print(lis2)

3,slice()切片函數網絡

lis = (1,2,3,4,5)
sli = slice(1,5,2)  # 返回一個對應的切片對象
print(lis[sli])	# 使用切片對象
# 等同於
print(lis[1:5:2])

4,format數據結構

    見轉載文章:內置函數——format函數

5,bytes 轉換成bytes類型(將對應的字節轉換成對應的16進制一個字節對應一個十六進制post

  • 網絡編程,網絡上只能傳二進制
  • 照片和視頻也是以二進制存儲
  • html網頁爬到的也是編碼
print(bytes('你好',encoding='gbk'))    #將gbk編碼的‘你好‘,轉換成對應的16進制,
print(bytes('你好',encoding='utf-8'))  #將utf-8編碼的‘你好‘,轉換成對應的16進制,

6,bytearray(s,encoding='utf-8')  是一個bytes類型的一個數組編碼

print(bytearray('你好',encoding='utf-8'))

  詳細講解:https://www.jianshu.com/p/af0f7efe2709url

7,字符轉換

  • ord  字符按照unicode轉數字
print(ord('a')) #>>>97
  • chr  數字按照unicode轉字符
print(chr(97))	#>>>a
  • ascii 只要是ascii碼中的內容就打印出來,不是就轉換成\u

8,repr  用於%r格式化輸出,輸出原型畢露

name = 'egg'
print('你好%r',%name)	#>>>你好'egg'
print(repr('1'))  #>>>'1'
print(repr(1))    #>>>1

9,all()   any()  都接收可迭代的

  9.1,all()  判斷是否有bool值爲False的值,若是有就是False(判斷是否全爲真)

print(all(['a','',123])) #>>>False
print(all(['a',123]))	#>>>True

  9.2,any()  判斷是否有bool值爲True的值,若是有就是True(判斷是否不全爲假)

print(any(['',True,0,[]]))  #>>>True

10,zip()  拉鍊函數

lis = [1,2,3]
lis2 = ['a','b','c']
print(zip(lis,lis2))  #是個迭代器
for i in zip(lis,lis2):
    print(i)
#結果:
(1,'a')
(2,'b')
(3,'c')

  相似拉鍊方法,長度不同時依次拉,多出來的不拉。

  能夠寫多個集合

lis = [1,2,3]
lis2 = ['a','b','c']
tu = ('*','**',[1,2])
dic = {'k1':1,'k2':2}
print(zip(lis,lis2,tu,dic))  #是個迭代器
for i in zip(lis,lis2):
    print(i)
#結果:
(1,'a','*','k1')
(2,'b','**','k2')

11,filter()   map()

  11.1,filter(函數名,可遍歷表)

    將表中的元素依次經過前面的函數進行篩選,若是知足條件,函數返回True,則將該元素提出。

    舉例:要從一個list [1, 4, 6, 7, 9, 12, 17]中去除偶數,提取出奇數,首先,要編寫一個判斷奇數的函數;而後,利用filter()過濾掉偶數

def is_odd(x):
    return x % 2 == 1

lis = [1, 4, 6, 7, 9, 12, 17]
 
ret = filter(is_odd, lis)
print(ret)		#返回一個迭代器
 
print(lis)		#不改變原列表
print(list(ret)) #將知足條件(結果爲True)的元素提出。

#for i in ret:    # 迭代器只能用一次。
#    print(i)
#還可寫爲
ret2 = [i for i in [1, 4, 6, 7, 9, 12, 17] if i % 2 == 1]
print(ret2)
lis = [1, 4, 6, 7, 9, 12, 17]
ret3 = filter(lambda x:x%2 == 1,lis)
print(list(ret3))
ret3 = filter(lambda x:True if x%2 == 1 else False,lis)
print(list(ret3))

   舉例:刪除 None 或者空字符串:

def is_not_empty(s):
    return s and len(s.strip()) > 0

lis = list(filter(is_not_empty, ['test', None, '', 'str', '  ', 'END']))

print(lis)

   11.2,map(函數名,可遍歷表)將表中的元素依次傳入前面的函數中並執行函數,將函數執行後的結果提出。

ret = map(abs,[1,-4,6,-8])	#絕對值排序
print(ret)
for i in ret:
	print(i)

12,sort()  sorted()   排序

  15.1,sort()在原列表的基礎上進行排序,原列表改變

lis = [1,-4,6,5,-10]
lis.sort(key = abs) #按絕對值排序
print(lis)

  12.2,sorted(iterable, key=None, reverse=False)   # 再生成一個表,不改變原表,佔內存

    參數說明:
      iterable:是可迭代類型;
      key:傳入一個函數名,函數的參數是可迭代類型中的每一項,根據函數的返回值大小排序;
      reverse:排序規則. reverse = True  降序 或者 reverse = False 升序,有默認值。
      返回值:有序列表

l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)
print(l1)
print(l2)
相關文章
相關標籤/搜索