和推導式類似
1)用法一:將原序列中的元素,按照函式給定的標準轉換成新的序列
語法:
map(函式,序列)--> 返回乙個序列
函式的要求:
是乙個函式
有乙個引數(指向後面的這個序列中的元素)
需要乙個返回值(返回值就是新序列中的元素)
# 獲取nums中所有元素的個位數,產生乙個新的列表
nums =[19
,78,66
,51,34
,98,22
]result =
map(
lambda item: item %
10, nums)
print
(list
(result)
)# [9, 8, 6, 1, 4, 8, 2]
2)用法二:
語法:
map(函式,序列1,序列2,…)
序列中元素個數必須一致
函式的要求:
是乙個函式
引數個數根據序列個數來定
需要乙個返回值(返回值就是新序列中的元素)
# 產生乙個新的序列,序列中每個元素是math和chinese的分數和
math =[1
,2,3
,4,5
]chinese =[1
,2,3
,4,5
]result =
map(
lambda item1, item2: item1 + item2, math, chinese)
print
(list
(result)
)# [2, 4, 6, 8, 10]
練習:將以下兩個列表按照下面的要求轉換字典:
names =
['蘋果'
,'小愛同學'
,'耳機'
,'天貓精靈'
]nums =
[1823
,22221
,891,78
]result =
map(
lambda item1, item2:
(item1, item2)
, names, nums)
print
(dict
(result)
)#
1)用法一:
語法:
reduce(函式,序列)-->只跟乙個序列
函式的要求:
是乙個函式
有且只有2個引數(第乙個引數指向初始值,從第二次開始指向上一次計算結 果;第二個引數指向序列中的每個元素)
有乙個返回值(返回值決定合併規則)
reduce無篩選功能
# 求所有元素的和
from functools import
reduce
# 方式一:匿名函式
nums =[23
,34,56
,67,8
]result =
reduce
(lambda x, y: x + y, nums,0)
print
(result)
# 188
# 方式二:普通函式
deff
(x, y)
:print
(f'x:, y:'
)return x+y
result =
reduce
(f, nums,0)
print
(result)
練習1:求所有的數的個位的和
nums =[23
,34,56
,67,8
]result =
reduce
(lambda x, y: x + y %
10, nums,0)
print
(result)
# 28
練習2:求所有的元素的數值和
nums =[23
,'78.9',9
,'10'
]result =
reduce
(lambda x, y: x+
float
(y), nums,0)
print
(result)
# 120.9
練習3:求所有數字的乘積
nums =[23
,8.9
,'abc'
,true
,'2'
]result =
reduce
(lambda x, y: x *
(y if
type
(y)in
[int
,float
]else1)
, nums,1)
print
(result)
# 204.70000000000002 約等於204.7
乙個py檔案就是乙個模組,檔名就是模組名
python中可以在乙個模組中使用另乙個模組
模組命名要規範
必須是全域性變數
1)方法一:直接匯入模組
語法:
import 模組名-->匯入所有模組
匯入後需要通過『模組名.***』的形式去使用
2)方法二:直接匯入模組中的變數
語法 :
from 模組名 import 變數名1,變數名2,…
—>匯入指定模組中的指定變數
直接寫模組名不用加點,書寫更簡潔
1)方法一:給模組重新命名
語法:
import 模組名 as 新模組名
使用時通過『新的模組名.***』的形式去使用
2)方法二:給模組中的變數重新命名
語法:
from 模組名 import 變數名1 as 新變數名1,變數名2 as 新變數名2,…
根據需要改變幾個變數名的個數加as
使用時直接用新變數名
語法:
**from 模組名 import *** -->匯入指定模組中所有的全域性變數
匯入模組時,系統會進入被匯入的模組將其全部執行一遍
只用匯入一次,會自動檢測之前是否有匯入過,不會導致重複迴圈
為了避免模組裡面的內容被全部執行,書寫時要規定能使用的內容範圍
1)不能被執行的內容
語法:
if --name --== 『–main–』:
在main語句裡面的**不會被其他模組執行,只能在自己頁面執行
在外面的**在被取用時會被執行
包含有–init–.py檔案的資料夾
1)方法一:複雜不建議使用
語法:
import files.模組.變數
2)方法二
語法:
import files.模組名 as 新模組名
使用時新模組名_read()
3)方法三
語法:
from files import jsonfile
使用時jsonfile.json_read()
4)方法四
語法:
form files.模組 import json_read
使用時json_read()
1)批量匯入
2)提取高頻使用的部分內容
3)封裝通用功能
9 1課堂筆記
課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...
9 7課堂筆記
課堂筆記 執行緒的同步 為什麼需要 執行緒同步 執行緒間共享 和資料可以節省系統開銷,提高程式執行效率,但同時也導致了資料的 訪問衝突 問題,如何實現執行緒間的有機互動 並確保共享資源在某些關鍵時段只能被乙個執行緒訪問,即所謂的 執行緒同步 synchronization 就變得至關重要。臨界資源 ...
11 7課堂心得
dev 裝置檔案 bin 存放使用者經常使用命令 sbin 系統管理員命令 tmp 臨時檔案儲存 mnt 掛載目錄 var 大檔案溢位區 usr 程式安裝目錄 sys 裝置關聯檔案 proc 虛擬目錄 系統記憶體的對映 lib 庫檔案 home 普通使用者的工作目錄 root root 使用者的工作...