python3mapNone
① python3和Python2的區別
請參考官方文檔
② python d=map怎麼理解
Python中map()、filter()、rece()這三個都是應用於序列的內置函數。
格式:
map(func, seq1[, seq2,…])
第一個參數接受一個函數名,後面的參數接受一個或多個可迭代的序列,返回的是一個集合。
Python函數編程中的map()函數是將func作用於seq中的每一個元素,並將所有的調用的結果作為一個list返回。如果func為None,作用同zip()。
1、當seq只有一個時,將函數func作用於這個seq的每個元素上,並得到一個新的seq。
讓我們來看一下只有一個seq的時候,map()函數是如何工作的。
從上圖可以看出,函數func函數會作用於seq中的每個元素,得到func(seq[n])組成的列表。下面舉得例子來幫助我們更好的理解這個工作過程。
#使用lambda
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]123123
#使用列表解析
>>> print [x % 2 for x in range(7)]
[0, 1, 0, 1, 0, 1, 0]123123
一個seq時,可以使用filter()函數代替,那什麼情況不能代替呢?
2、當seq多於一個時,map可以並行(注意是並行)地對每個seq執行如下圖所示的過程:
從圖可以看出,每個seq的同一位置的元素同時傳入一個多元的func函數之後,得到一個返回值,並將這個返回值存放在一個列表中。下面我們看一個有多個seq的例子:
>>> print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
[8, 16, 6]1212
如果上面我們不使用map函數,就只能使用for循環,依次對每個位置的元素調用該函數去執行。還可以使返回值是一個元組。如:
>>> print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]1212
當func函數時None時,這就同zip()函數了,並且zip()開始取代這個了,目的是將多個列表相同位置的元素歸並到一個元組。如:
>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]1212
需要注意的是:
map無法處理seq長度不一致、對應位置操作數類型不一致的情況,這兩種情況都會報類型錯誤。如下圖:
3、使用map()函數可以實現將其他類型的數轉換成list,但是這種轉換也是有類型限制的,具體什麼類型限制,在以後的學習中慢慢摸索吧。這里給出幾個能轉換的例子:
***將元組轉換成list***
>>> map(int, (1,2,3))
[1, 2, 3]
***將字元串轉換成list***
>>> map(int, '1234')
[1, 2, 3, 4]
***提取字典的key,並將結果存放在一個list中***
>>> map(int, {1:2,2:3,3:4})
[1, 2, 3]
***字元串轉換成元組,並將結果以列表的形式返回***
>>> map(tuple, 'agdf')
[('a',), ('g',), ('d',), ('f',)]
#將小寫轉成大寫
def u_to_l (s):
return s.upper()
print map(u_to_l,'asdfd')
③ js判定是否傳入回調函數
關於js回調函數,自己之前了解過,但是概念不是很清晰了,這里重新找幾篇博客回顧一下概念,整理的感覺比較好的幾個博客的總結的概念。方便復習。
js中的回調函數的理解:回調函數就是傳遞一個參數化函數,就是將這個函數作為一個參數傳到另外一個主函數裡面,當那個主函數執行完之後,再執行傳遞過去的函數,走這個過程的參數化的函數,就叫回調函數,換個說法也就是被作為參數傳遞到另一個函數(主函數)的那個函數就叫做回調函數。
回調函數:函數a有一個參數,這個參數是個函數b,當函數a執行完以後執行函數b。那麼這個過程就叫回調。,這句話的意思是函數b以一個參數的形式傳入函數a並執行,順序是先執行a ,然後執行參數b,b就是所謂的回調函數。
function a(callback){
alert('a');
callback.call(this);//或者是 callback(), callback.apply(this),看個人喜好
}
function b(){ // 為回調函數。
alert('b');
}
//調用
a(b);
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
js中的回調函數:官方解釋,當程序跑起來的時候,一般情況下,應用程序會時常通過API調用庫里的所先預備好的函數,但是有些庫函數,卻要求應用先傳給它的一個函數,好在適合的時候調用,以完成目標任務。這個被傳入的,後又被調用的函數成為回調函數。
通常將一個函數B傳入另外一個函數A,並且在需要的時候調用A.,說白了就是回溯函數,先定義好將要使用的函數體,飯後在使用在調用這個函數我們通常把callback作為一個參數傳入定義的那個函數。下面我們看一段實現這個效果的js代碼。
function Buy(name,goods1,callback) {
alert(name+' buy '+goods1);
if(callback&&typeof(callback)==="function")
callback();
}
Buy('xiaoming','apple',function(){
alert("shopping finish");
});
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
一個簡單的代碼,一開始不知道要買啥,等到買東西的時候,立即把之前定義好的函數調用出來,最好加上判斷,因為一切的前提是callback必須是一個函數,輸出結果為:
xiaoming buy apple
shopping finish
1
2
1
2
這樣應該能理解什麼是回調函數了吧。
打開CSDN,閱讀體驗更佳
JS中的 回調函數(callback)_前端小草籽的博客_js回調函數
1.什麼是回調函數(callback)呢? 把函數當作一個參數傳到另外一個函數中,當需要用這個函數是,再回調運行()這個函數. 回調函數是一段可執行的代碼段,它作為一個參數傳遞給其他的代碼,其作用是在需要的時候方便調用這段(回調函數)代碼。
JS中什麼是回調函數?_路過的假面騎士dcd的博客
參數可以拿來用,你也可以不用。形參,形式上的參數,並沒有實際意義,只是幫你完成函數內部邏輯運算而設置的。 回調函數:被作為實參傳入另一函數,並在該外部函數內被調用,用以來完成某些任務的函數,稱為回調函數。 functiongreeting(name){...
JS回調函數——簡單易懂有實例
初學js的時候,被回調函數搞得很暈,現在回過頭來總結一下什麼是回調函數。什麼是JS?(點擊查看) 下面先看看標準的解釋: <script language="javascript"> 02 function SortNumber( obj, func ) // 定義通用排序函數 03 { 04 //...
繼續訪問
淺析JS中回調函數及用法
主要介紹了JS中回調函數及用法,通過實例代碼給大家詳細介紹了什麼是回調函數,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
JS回調函數(callback)
淺談JS回調函數
繼續訪問
JS中的 回調函數(callback)
目錄1.什麼是回調函數(callback)呢?2.回調函數有哪些特點?3.回調函數中this的指向問題4.為什麼要用到回調函數?5.回調函數和非同步操作的關系是什麼?回調函數是非同步么?把函數當作一個參數傳到另外一個函數中,當需要用這個函數是,再回調運行()這個函數.回調函數是一段可執行的代碼段,它作為一個參數傳遞給其他的代碼,其作用是在需要的時候方便調用這段(回調函數)代碼。(作為參數傳遞到另外一個函數中,這個作為參數的函數就是回調函數)理解:函數可以作為一個參數傳遞到另外一個函數中。 分析:add(1,
繼續訪問
js之回調函數
回調函數 回調函數被作為實參傳入另一函數,並在該外部函數內被調用,用以來完成某些任務的函數,稱為回調函數。 一個簡單的例子 <script type="text/javascript"> window.onload = function(){ // 回調函數 function a(m){ return m+m; } console.log(a(3));//6 返回一個數據 console.log(a);//f a(m){return m+n} 返
繼續訪問
<Zhuuu_ZZ>HIVE(十一)函數
Hive內置函數一 Hive函數分類二 字元函數二 類型轉換函數和數學函數三 日期函數四 集合函數五 條件函數六 聚合函數和表生成函數6.1 聚合函數6.2 表生成函數:輸出可以作為表使用 一 Hive函數分類 從輸入輸出角度分類 標准函數:一行數據中的一列或多列為輸入,結果為單一值 聚合函數:多行的零列到多列為輸入,結果為單一值 表生成函數:零個或多個輸入,結果為多列或多行 從實現方式分類 內置函數 自定義函數 UDF:自定義標准函數 UDAF:自定義聚合函數 UDTF:自定義表生成函數
繼續訪問
常見的開窗函數
開窗函數與聚合函數計算方式一樣,開窗函數也是對行集組進行聚合計算,但是它不像普通聚合函數那樣每組只返回一個值,開窗函數可以為每組返回多個值。 開窗函數的語法為:over(partition by 列名1 order by 列名2 ),括弧中的兩個關鍵詞partition by 和order by 可以只出現一個。over() 前面是一個函數,如果是聚合函數,那麼order by 不能一起使用。 開窗函數主要分為以下兩類: 窗口函數OVER()指定一組行,開窗函數計算從窗口函數輸出的結果集中各行的值。
繼續訪問
開窗函數總結
4.2.1,表的數據 4.2.3,開窗函數查詢 1,結果如下: 2,結果如下,可以參照這個結果進行理解rows和range的區別 3,結果如下,可以用於獲取當前數據行的 上次登錄時間 的需求 4,結果如下,結合lead()函數 可以獲取用戶 上次登錄時間與下次登錄時間的 需求 5,結果如下,可以用於指定時間內最新或最舊數據的需求。 6,結果如下,可用於求比例的需求 7,結果如下: 7,結果如下: 8,結果如下 9,結果如下: ,10,結果
繼續訪問
熱門推薦 python中def用法
一、函數調用的含義 函數是類似於可封裝的程序片段。允許你給一塊語句一個名字,允許您在你的程序的任何地方使用指定的名字運行任何次數。 python中有許多內置函數,如len和range。 函數概念可能是任何有價值軟體中最重要的塊(在任何編程語言中)。 二、定義函數使用def關鍵字 在這個關鍵字之後是標識函數的名字; 其次是在一對括弧中可以附上一些變數名; 最後在行的末尾...
繼續訪問
python map函數的作用_python語言基礎之map函數,urlib.request,多線程
1.map函數map 是 Python 自帶的內置函數,它的作用是把一個函數應用在一個(或多個)序列上,把列表中的每一項作為函數輸入進行計算,再把計算的結果以列表的形式返回。map 的第一個參數是一個函數,之後的參數是序列,可以是 list、tuple。當 map 中的函數為 None 時,結果將會直接返回參數組成的列表。(python3中去掉了None,會報錯)lst_1 = (1,2,3,4,...
繼續訪問
JS中什麼是回調函數?
對於剛學JS的初學者來說(包括我現在的自己),對於這個回調函數真的是踩坑無數,於是乎想作為一個淋過雨的人,想為後面剛入門的人打一把傘。 本文不會用專業的知識詞彙,只會用口語來簡單讓你有一個概念幫你淺淺的理解這個名詞,如果你是一個學習JS剛遇到這個名詞,正處於一臉懵逼的狀態,那麼本文對於會有幫助,但如果你想要研究更深層次的原理,用法和含義,可能本文不適合你。 廢話不多說,讓我們先看MDN的解釋。 這段話,首先我們要搞懂一個東西,什麼是實參。 我們都知道,函數可以接受參數,形參和實參。那麼什麼是
繼續訪問
js回調函數的兩種寫法
回調函數 應用程序時常會通過API調用庫里所預先備好的函數。但是有些庫函數(library function)卻要求應用先傳給它一個函數,好在合適的時候調用,以完成目標任務。這個被傳入的、後又被調用的函數就稱為回調函數(callback function)。 總結一下回調函數的兩種寫法與用法: 非參數回調函數: 這種回調比較簡單 ,往往只需傳一個函數名就可以。 function demo(arg,callback){ } 再來看看怎麼寫這個函數 在js中是可以通過函數名來調用函數的 例如: var
繼續訪問
【一句話攻略】徹底理解JS中的回調(Callback)函數
回調函數
繼續訪問
sql開窗函數(窗口函數)詳解
一、什麼是開窗函數 開窗函數/分析函數:over() 開窗函數也叫分析函數,有兩類:一類是聚合開窗函數,一類是排序開窗函數。 開窗函數的調用格式為: 函數名(列名) OVER(partition by 列名 order by列名) 。 如果你沒聽說過開窗函數,看到上面開窗函數的調用方法,你可能還會有些疑惑。但只要你了解聚合函數,那麼理解開窗函數就非常容易了。 我們知道聚合函數對一組值執行計算並返回單一的值,如sum(),count(),max(),min(), avg()等,這些函數常與grou
繼續訪問
最新發布 Python中很常用的函數map(),一起來看看用法
Python2中map直接返回作用後的元素的列表 Python3中map返回的則是一個map對象 如果想得到列表對象,則還需要調用list轉化為列表對象 Python2中,map()函數的 function 可以為None,如map(iterable1,iterable2[,...[,iterable n),其作用類似於將iterable*中的對應索引的值取出作為一個元組,最終返回一個包含多個元組的列表。而Python3中,不指定 function,就會報錯。
繼續訪問
Oracle分析函數Over()
一、Over()分析函數 說明:聚合函數(如sum()、max()等)可以計算基於組的某種聚合值,但是聚合函數對於某個組只能返回一行記錄。若想對於某組返回多行記錄,則需要使用分析函數。 1、rank()/dense_rank over(partition by ... order by ...) 說明:over()在什麼條件之上; partition by 按哪個欄位劃分組; ...
繼續訪問
mysql開窗函數有哪些_mysql開窗函數
開窗函數:它可以理解為記錄集合,開窗函數也就是在滿足某種條件的記錄集合上執行的特殊函數。對於每條記錄都要在此窗口內執行函數,有的函數隨著記錄不同,窗口大小都是固定的,這種屬於靜態窗口;有的函數則相反,不同的記錄對應著不同的窗口,這種動態變化的窗口叫滑動窗口。開窗函數的本質還是聚合運算,只不過它更具靈活性,它對數據的每一行,都使用與該行相關的行進行計算並返回計算結果。開窗函數和普通聚合函數的區別聚合...
繼續訪問
SQL:開窗函數(窗口函數)
4、 窗口函數 目錄4、 窗口函數4.1 排序窗口函數rank4.2 rank(), dense_rank(), row_number()區別4.3 、排序截取數據lag(),lead(),ntile(),cume_dist()4.4 聚合函數作為窗口函數4.4、over(- - rows between and ) 簡單理解,就是對查詢的結果多出一列,這一列可以是聚合值,也可以是排序值。 開窗函數一般就是說的是over()函數,其窗口是由一個 OVER 子句 定義的多行記錄 開窗函數一般分為兩類,
繼續訪問
開窗函數(分析函數)使用詳解
開窗函數 簡介 開窗函數:在開窗函數出現之前存在著很多用 SQL 語句很難解決的問題,很多都要通過復雜的相關子查詢或者存儲過程來完成。為了解決這些問題,在 2003 年 ISO SQL 標准加入了開窗函數,開窗函數的使用使得這些經典的難題可以被輕松的解決。目前在 MSSQLServer、Oracle、DB2 等主流資料庫中都提供了對開窗函數的支持,MySQL8.0支持。 5.7 --> 8.0 開窗函數簡介:與聚合函數一樣,開窗函數也是對行集組進行聚合計算,但是它不像普通聚合函數那樣每組只返回一個
繼續訪問
敲黑板啦!開窗函數你學會了嗎
特徵分析與偏移分析什麼是開窗函數?學習目標:1、累計計算窗口函數(1)sum(…) over(……)(2)avg(…) over(……)(3)語法總結:2、分區排序窗口函數3、分組排序窗口函數4、偏移分析窗口函數練習總結: 什麼是開窗函數? 開窗函數用於為行定義一個窗口(這里的窗口是指運算將要操作的行的集合),它對一組值進行操作,不需要使用GROUP BY子句對數據進行分組,能夠在同一行中同時返回...
繼續訪問
④ Python實現彩色散點圖繪制(利用色帶對散點圖進行顏色渲染)
接受自己的普通,然後全力以赴的出眾,告訴自己要努力,但不要著急....
當然, 這個結果並不是我真正想要的,Pass, 太丑了!
好吧,安排,我們先看下實現後的效果!
這個效果自然就比之前的好多了!
實現python散點圖繪制需要用到matplotlib庫, matplotlib庫是專門用於可握沒視化繪圖的汪旅工具庫;學習一個新的庫當然看官方文檔了: https://www.osgeo.cn/matplotlib/contents.html
實現思路:
matplotlib.pyplot.scatter() 函數是專門繪制散點圖的函數: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter
matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **
plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c參數為計算的散點密度;
2、cmap為色帶(matplotlib裡面自帶了很多色帶可供選擇),參見:
https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html
3、由於計算的散點密度數值大小分散,因此利用norm參數對散點密度Z1進行歸一化處理(歸一化方式很多,參見colors類),並給歸一化方式設置色帶刻度的最大最小值vmin和vmax(一般這兩個參數就是指定散點密度的最小值和最大值),這樣就建立起了密度與色帶的映射關系。
https://matplotlib.org/tutorials/colors/colormapnorms.html
(這里的結果與前面展示的相比改變了計算散點密度的半徑:radius = 3以及繪制散點圖的散點大小marksize)困皮凳
作者能力水平有限,歡迎各位批評指正!
⑤ python 中的map(轉載)
1 map()函數的簡介以及語法:
map是python內置函數,會根據提供的函數對指定的序列做映射。
map()函數的格式是:
map(function,iterable,...)
第一個參數接受一個函數名,後面的參數接受一個或多個可迭代的序列,返回的是一個集合。
把函數依次作用在list中的每一個元素上,得到一個新的list並返回。注意,map不改變原list,而是返回一個新list。
2 map()函數實例:
del square(x):
return x ** 2
map(square,[1,2,3,4,5]) ---- -要列印結果需要 print(*map(square,[1,2,3,4,5])),這塊列印了再列印就會為空
# 結果如下:
[1,4,9,16,25]
通過使用lambda匿名函數的方法使用map()函數:
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])
# 結果如下:
[3,7,11,15,19]
通過lambda函數使返回值是一個元組:
map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])
# 結果如下
[(8,5),(16,6),(6,7)]
當不傳入function時,map()就等同於zip(),將多個列表相同位置的元素歸並到一個元組:
map(None,[2,4,6],[3,2,1])
# 結果如下
[(2,3),(4,2),(6,1)]
通過map還可以實現類型轉換
將元組轉換為list:
map(int,(1,2,3))
# 結果如下:
[1,2,3]
將字元串轉換為list:
map(int,'1234')
# 結果如下:
[1,2,3,4]
提取字典中的key,並將結果放在一個list中:
map(int,{1:2,2:3,3:4})
# 結果如下
[1,2,3]
原文鏈接:https://blog.csdn.net/quanlingtu1272/article/details/95482253
⑥ python3 + tensorflow+zeppelin
設置密碼:
https://bitmingw.com/2017/07/09/run-jupyter-notebook-server/
國內鏡像:
https://blog.csdn.net/qq_39161804/article/details/81191977
https://www.tensorflow.org/install/install_mac
for example :
virtualenv --system-site-packages -p python3 ~/消掘TensorFlowEnvPy3
python3 安裝tensorflow
https://blog.csdn.net/inkky/article/details/79680392
pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.6.0-py3-none-any.whl
報錯: https://stackoverflow.com/questions/49183801/ssl-certificate-verify-failed-with-urllib
pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
https://www.python.org/downloads/mac-osx/
https://www.jianshu.com/p/98a19215ade6
2.安裝pyh模塊
http://hanxiaomax.github.io/trans/pyh-chinese-doc/
3.python2 到 python3 踩坑
tips:
(1)dict 沒有has_key函數;用 key in dict 判斷,並且dict.keys()返回類型需要強制轉成list再排序,即list(dict.keys())
(2)map函數,python2中直接返回結果,而python3中返回的是map對象, 需要list轉化;注意如果不在map前加list,拿嫌核lambda函數根本不會者殲執行~ ~蛋疼
4、zeppelin使用說明
http://zeppelin.apache.org/docs/0.8.0-SNAPSHOT/index.html
5、matplotlib問題
https://blog.csdn.net/weixin_38865768/article/details/80734732
⑦ 為什麼python3中運行list(map(None,l1,l2)) 報錯TypeError: 'NoneType' object is not callable
估計是solution的塵指問題,鉛團改動一下派激配代碼就可以了:class Solution(object): def removeElements(self, head, val): """ :type head: ListNode :type val: int :rtype: ListNode """ cur = ListNode(0) cur.next = head p = cur cur.next=None while p.next: if p.next.val == val: cur.next=p.next p.next = p.next.next break p = p.next return cur.next
⑧ Python3有性能上的提升么
#xiaodeng
#python3
#1、編碼方式和性能
'''
1、py3運行效率更快
2、默認源文件編碼ASCII變為UTF-8,以前文件前加入的coding=utf-8不再需要
3、針對unicode的處理有了明顯的改善,效率明顯提升
'''
#2、數據類型和基本運算
'''
1、int和long進行了統一,統一為int
2、True、False、None都是關鍵詞
3、必須以b'...'表示二進制數據,可以使用u'..'表示字元串,不加u也表示字元串
4、移除<>不等號,使用「!=」表示不等號關系
1)2!=3
2)2<>3#出現語法錯誤
5、調整除法符號『/』的用法,只返回浮點數,要返回整數要使用「//」
6、py3運算對數據的類型要求更加的嚴格
'''
deffoo(test=None):
iftestisNone:
print(test)
foo()
print(5/2)#浮點數
print(5//2)#整數
print(1/3)
#4、print和exec用法
'''
1、print是一個函數,不再是一個語句,其中不需要用空格,後面列印的內容需要有括弧括起來
2、exec函數用法發生變化
'''
deffoo():
_local=locals()
exec('a=4',globals(),_local)
a=_local['a']
print(a)
foo()
#5、input、bin、oct和for循環
'''
1、raw_input統一為input
在py2中用法為:
1)a=raw_input('請輸入:')
printa
2)a=input('請輸入:')#接收一個有效的表達式,如:2+3,而不能單獨接收3
printa
2、for循環的變數不再泄露在全局變數中,此bug已修復
1)Python2.7.10(default,May232015,09:40:32)[MSCv.150032bit(Intel)]onwin32
Type"right","credits"or"license()"formoreinformation.
>>>i=8
>>>print[iforiinrange(5)]
[0,1,2,3,4]
>>>printi
#按照道理來講for循環中的i與最外面的i=8的i是不同的,但是這里。。。。。
>>>
2)
i=6
print([iforiinrange(5)])#結果為[0,1,2,3,4]
print(i)#結果i=6
'''
#6、a=input('請輸入:')#這里不再需要一個有效的表達式,他的用法和raw_input相同
#print(a)
#7、range和dict的變化
'''
1、在python2中,range火xrange會創建一個列表。常出現在for循環、字典、列表中,但是py3中xrange改名為range,在python3中使用
使用xrange會觸發錯誤。同時range返回的是可迭代對象而不再是列表形式,要想使range的結果得到一個list數據必須要使用list(range(5))
2、字典內的dict.iterkeys(),dict.itervalues(),dict.iteritems()被keys()andvalues()anditems()所替代
他們的返回結果類似於集的可迭代對象,而不是鍵值對的列表。從而在不進行鍵和值條目復制的情況下就能對其執行set操作
'''
a=range(6)
print(a)#result:range(0,6)對象,不是列表
print(list(a))#result:[0,1,2,3,4,5]
foriinrange(6):
print(i)
#print(xrange(5))#報錯:提示為name"xrange"is'notdefined
#dict案例
d={'name':"iaodeng",'sex':28}
print(d.items())
print(type(d.items()))#<class'dict_items'>
#返回結果dict_items([('name','iaodeng'),('sex',28)])
#這里不再是列表形式
'''
Python2.7.10(default,May232015,09:40:32)[MSCv.150032bit(Intel)]onwin32
Type"right","credits"or"license()"formoreinformation.
>>>d={'name':"iaodeng",'sex':28}
>>>printd
{'name':'iaodeng','sex':28}
>>>printd.items()
[('name','iaodeng'),('sex',28)]
>>>printd.iteritems()#返回一個可迭代對象
<dictionary->
>>>foriind.iteritems():printi
('name','iaodeng')
('sex',28)
>>>
'''
print('xiaodeng:d.keys():',d.keys())#xiaodeng:d.keys():dict_keys(['name','sex'])
print(type(d.keys()))#<class'dict_items'>
#values()同理
print("既然是可迭代對象,那麼還可以進行下面操作")
foriind.items():
print(i)
forkeyind.keys():
print(key)
print("values用法同理")
print('用list將可迭代對象轉化為list數據')
print(list(d.values()))
#7、python3具有單一的str類型,其類型相當於python2的unicode,python3所有的字元串都是unicode
#新增bytes類型
a=b"china"
print(type(a))#<class'bytes'>
#str和tytes對象都可以使用encode和decode來進行轉化
s=a.decode()
print(s)#china字元串類型
s=s.encode()
print(s)#b"china",tytes位元組類型
#8、輸入和輸出
a=open('test.txt','w')
a.write("writeinsomething")
a.close()
b=open("test.txt","r")
print(b.read())#note:注意加括弧
"""
1、如果要對文本執行任何I/O操作,python3會強制用戶使用文本模式,打開文件,如果不想使用默認編碼utf-8
通常需要指明所需的編碼
2、如果對二進制數據進行I/O操作,必須使用二進制模式打開文件或進行讀寫操作
eg:
f=open("test1.txt","wb+")#二進制追加模式
f.write(b"wlovefengmei")#必須加b,以bytes對象的形式進行寫入
f.close()
file=open(filename,mode)
mode:
r:只讀模式
w:只寫,如果文件已存在則會進行覆蓋操作,所以格外小心,如果文件不存在則創建新的文件
a:打開文件用於追加,只寫如果文件不存在則創建
b:二進制,不能單獨使用
經過演變會有很多形式
"""
#9、迭代器
"""
1、range在python3中返回顆迭代對象二不是列表,最大限度節約內存
2、zip(),map(),filter(),key(),value()返回的均是可迭代對象
"""
#10、異常錯誤處理
"""
1、必須使用關鍵詞as,try和exceptNameErrorase語句
2、案例:
python2
try:
something
exceptNameError,err:
printerr
python3
try:
something
exceptNameErroraserr:
print(err)
3、raise觸發語法用法的變化,python3隻接受帶括弧的
1)raiseIOError,"fileerror"#出現語法錯誤
2)raiseIOError("fileerror")
"""
#11、面向對象
"""
1、需要單獨深入學習
"""
#12、模塊的變動
⑨ Python,這段代碼是什麼意思,求解答
這是一個將字元串列表連接到一起的函數。
chList是一個字元串列表,如['abc', 'efg', 'opi']
sep是連接字元串的分隔符
(sep or ',')是指如果sep存在就用sep, 不存在就用,
例如:
chList = ['abc', 'efg', 'opi']
Join(chlist) # 結果為 abc,efg,opi
Join(chlist, ' ') # 結果為abc efg opi
⑩ python map函數怎麼用啊!
1、對可迭代函數'iterable'中的每一個元素應用『function』方法,將結果作為list返回。
來個例子:
>>> def add100(x):
... return x+100
...
>>> hh = [11,22,33]
>>> map(add100,hh)
[111, 122, 133]
就像文檔中說的:對hh中的元素做了add100,返回了結果的list。
2、如果給出了額外的可迭代參數,則對每個可迭代參數中的元素『並行』的應用『function』。(翻譯的不好,這里的關鍵是『並行』)
>>> def abc(a, b, c):
... return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]
看到並行的效果了吧!在每個list中,取出了下標相同的元素,執行了abc()。
3、如果'function'給出的是『None』,自動假定一個『identity』函數(這個『identity』不知道怎麼解釋,看例子吧)
>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]