Python學習筆記九_內置函數、json、匿名函數

1、內置函數

python自帶的一些函數,直接拿過來能用的python

print(max(111,12))#取最大值
print(min(12,23))#取最小值
print(abs(-1))#取絕對值
print(round(11.23454,2))#取幾位小數
print(sorted([1,23,45,66,33,2]))#排序,可用於字典排序
dic = {1:2,3:4,5:6} print(sorted(dic.items()))#按照字典的key排序
print(sorted(dic.items(),key = lambda  x:x[1]))#按照字典的value排序
print(id(dic)) #看內存地址
print(type(dic)) #看數據類型
print() #打印
input() #輸入
list()  #轉list,字符串轉list用.split
set()# 轉集合
str()#轉字符串,list轉字符串用.join
dict()#轉字典
int()#轉int
float()#轉float類型
len()#取長度

 

print(dir('abc'))#查看字符串的方法,不用看有_xx_的
print(dir({}))#打印傳入對象的可調用方法
print(all([1,2,3,4]))#判斷可迭代的對象裏面的值是否都爲真
print(any([0,1,2,3,4,]))#判斷可迭代的對象裏面的值是否有一個爲真
print(bin(10))#十進制轉二進制,0b1010
print(bin(10).replace('0b',''))#1010
print(hex(111))#數字轉成16進制
print(oct(111))#把數字轉換成8進制
print(bool('s'))#把一個對象轉換成布爾類型
print(bytearray('abcd',encoding='utf-8'))#把字符串變成一個可修改的bytes,bytearray(b'abcd')
print(chr(69))#打印數字對應的ascii
print(ord('E'))#打印字符串對應的ascii碼
exec('def a():print("我是a")')#執行python代碼
print(eval('[]'))  # 執行python代碼,只能執行簡單的,定義數據類型和運算[],{}
a = eval('1+2') print(a) print(filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35]))  # 把後面的迭代對象根據前面的方法篩選
print(map(lambda x: x > 5, [1, 2, 3, 4, 5, 6])) print(frozenset({1, 2, 3, 3}))  # 定義一個不可修改的集合
print(globals())  # 返回程序內全部的變量,返回的是一個字典
print(locals())  # 返回局部變量
print(hash('aaa'))  # 把一個字符串哈希成一個數字

2、json處理

json是一種全部語言中都通用的key-value數據結構的數據類型,很像python中的字典。json

json串是一個字符串。數組

一、json格式

須要注意,json中必須使用雙引號數據結構

{ "car":{ "color":"red", "num":1, "price":98.5 }, "ball":{ "num":100, "price":1, "color":"white" } }

二、讀json文件:json串--->python字典

  (1) json.loads():把json串轉換成字典函數

     json.loads()須要先讀文件,()裏是string編碼

import json fr = open('product.json',encoding='utf-8') res = fr.read() product_dic = json.loads(res) #把json串,變成python的字典數據類型
print(type(product_dic)) #<class 'dict'>
print(product_dic.get)#pycharm點不出get方法

  (2) json.load():從文件中讀取json數據,而後轉成字典spa

     json.load()不用再讀文件,()裏是filecode

import json fr = open('product.json',encoding='utf-8') product_dic = json.load(fr) #傳一個文件對象,它會幫你讀文件,()裏是file
print(type(product_dic)) #<class 'dict'>
print(product_dic)

三、寫json文件:python字典 ---> json串

  (1) json.dumps():把字典轉成json串對象

     json.dumps()須要寫文件,()裏是stringblog

import json d = { 'Amy':{ 'addr':'北京', 'age':28 } } fw = open('user_info.json','w',encoding='utf-8') dic2json = json.dumps(d,ensure_ascii=False,indent=4)#字典轉成json,字典轉成字符串 # ensure_ascii=False顯示中文,再也不轉爲union code編碼 #indent=4縮進4
fw.write(dic2json)

  (2) json.dump():把字典轉換成的json串寫到一個文件裏面

     json.dump()不用單獨寫文件,()裏是file

import json d = { 'Ben':{ 'addr':'北京', 'age':28 } } fw = open('user_info.json','w',encoding='utf-8') json.dump(d,fw,ensure_ascii=False,indent=4)#不用寫文件,()裏是file

3、匿名函數

 若是函數只執行一次的話,能夠定義一個匿名函數。匿名函數只能處理比較簡單的處理邏輯,只能寫簡單的表達式,不能寫循環、判斷,好比三元運算符。

匿名函數定義試用lambda關鍵字。

s =lambda x,y:x+y#冒號前面的x,y是入參,冒號後面的是返回值
print(s(1,9))#由於函數即變量,若是沒有定一個變量把lambda存起來的話,它就再也不內存裏 #無法執行,因此把它放到s這個變量裏

經過sorted及lambda對字典排序:

d = {'a':8,'b':2,'c':3}#字典是無續的,直接對字典排序是不存在的
print(d.items())#item將字典轉爲二維數組,list是有序的 # dict_items([('c', 3), ('b', 2), ('a', 8)])
res = sorted(d.items()) #根據key排序
res1 = sorted(d.items(),key=lambda x:x[0])#根據key排序 #sorted循環調用,按照d.items()循環,循環key第一次取到('c', 3)賦給key
res2 = sorted(d.items(),key=lambda x:x[1],reverse=True)#根據value倒序排序
print(res2)#[('a', 8), ('c', 3), ('b', 2)]
for k,v in res2: print(k,v)
相關文章
相關標籤/搜索