Python學習筆記整理(python 3)

來源:互聯網
上載者:User
一、tuple(元組)

tuple和list非常類似,但是tuple一旦初始化就不能修改,如:

classmates = ('Michael', 'Bob', 'Tracy')

classmates這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他擷取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素

不可變的tuple有什麼意義。因為tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple tuple的陷阱

要定義一個只有1個元素的tuple,如果你這麼定義:

t = (1)t1

定義的不是tuple,是1這個數。這是因為括弧()既可以表示tuple,又可以表示數學公式中的小括弧,這就產生了歧義,因此,Python規定,這種情況下,按小括弧進行計算,計算結果自然是1。
所以,只有1個元素的tuple定義時必須加一個逗號,,來消除歧義:

t = (1,)t(1,)

Python在顯示只有1個元素的tuple時,也會加一個逗號,,以免你誤解成數學計算意義上的括弧。

最後來看一個“可變的”tuple:

t = ('a', 'b', ['A', 'B'])t[2][0] = 'X't[2][1] = 'Y't('a', 'b', ['X', 'Y'])
二、Python中list類型切片 1、基本用法

①con[start_index]:返回索引值為start_index的對象

②con[start_index: end_index]:返回索引值為start_index到end_index-1之間的連續對象

③con[start_index: end_index : step]:返回索引值為start_index到end_index-1之間,並且索引值與start_index之差可以被step整除的連續對象,即步長

2、預設用法

①con[start_index: ]:預設end_index,表示從start_index開始到序列中最後一個對象

②con[: end_index]:預設start_index,表示從序列中第一個對象到end_index-1之間的片段

③con[:]:預設start_index和end_index,表示從第一個對象到最後一個對象的完整片段

④con[::step]:預設start_index和end_index,表示對整個序列按照索引可以被step整除的規則取值

可以用負數做切片。負數用在從序列尾開始計算的位置

s[::-1]可視為翻轉效果

3、Numpy中的二維ndarray切片

對於一維資料的具體用法和Python中的類似

對於二維數值用法如下,X[:,:]用逗號分隔兩個維度,對於每個維度用法一樣,以下面這個二維數組為例:

x[:,1] 取x軸方向所有值,y軸等於1,結果:

x[1:3,1] 取x軸 x大於等於1,小於3,y軸等於1,結果:

三、lambda運算式簡單用法

對於簡單的函數,也存在一種簡便的表示方式,即:lambda運算式

# ###################### 普通函數 ####################### 定義函數(普通方式)def func(arg):    return arg + 1# 執行函數result = func(123)# ###################### lambda ####################### 定義函數(lambda運算式)my_lambda = lambda arg : arg + 1# 執行函數result = my_lambda(123)
四、__call__
class X(object):    def __init__(self, a, b, range):        self.a = a        self.b = b        self.range = range    def __call__(self, a, b):        self.a = a        self.b = b        print('__call__ with ({}, {})'.format(self.a, self.b))    def __del__(self, a, b, range):        del self.a        del self.b        del self.range
>>> xInstance = X(1, 2, 3)>>> xInstance(1,2)__call__ with (7, 8)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.