序列: 字符串,列表,元組
1,定義:
序列: 成員有序排列,並且成員可以通過下標偏移量訪問
2,序列類型操作符
1, 成員關係操作符
in/not in 判斷一個對象是否屬於該對象序列
2, 連接操作符
+ 把一個序列和另一個相同的序列做連接
3, 重複操作符
* 拷貝多分序列
4,切片操作符
[]\[:]\[::]
3,類型轉換
unicode()
basestring()
tuplue()
知識點:關於深拷貝和淺拷貝
代碼場景:有一個小夥jack,tom通過切片操作拷貝jack,anny通過工廠方法拷貝jack。
>>> jack = ['jack', ['age', 20]]
>>> tom = jack[:]
來看下三者的id值:
>>> print id(jack), id(tom), id(anny)
144846988 144977164 144977388
從id值來看,三者是不同的對象。爲tom和anny重新命名爲各自的名稱:
>>> tom[0] = 'tom'
>>> anny[0] = 'anny'
>>> print jack, tom, anny
['jack', ['age', 20]] ['tom', ['age', 20]] ['anny', ['age', 20]]
從這裏來看一切正常,可是anny只有18歲,重新爲anny定義歲數。
>>> anny[1][1] = 18
>>> print jack, tom, anny
['jack', ['age', 18]] ['tom', ['age', 18]] ['anny', ['age', 18]]
>>> [id(x) for x in jack]
[3073896320L, 3073777580L]
>>> [id(x) for x in tom]
[144870744, 3073777580L]
>>> [id(x) for x in anny]
[144977344, 3073777580L]
2、利用copy中的deepcopy方法進行拷貝
爲了讓他們之間不互相影響,用deepcopy來試試
>>> jack = ['jack', ['age', '20']]
>>> import copy
>>> tom = copy.deepcopy(jack)
>>> anny = copy.deepcopy(jack)
根據第一個思路進行重命名,重定歲數操作:
>>> tom[0] = 'tom'
>>> anny[0] = 'anny'
>>> print jack, tom, anny
['jack', ['age', '20']] ['tom', ['age', '20']] ['anny', ['age', '20']]
>>> anny[1][1] = 18
>>> print jack, tom, anny
['jack', ['age', '20']] ['tom', ['age', '20']] ['anny', ['age', 18]]
這時候他們之間就不會互相影響了。打印出每個人的內部元素每個id:
>>> [id(x) for x in jack]
[139132064, 3073507244L]
>>> [id(x) for x in tom]
[139137464, 139132204]
>>> [id(x) for x in anny]
[139141632, 139157548]
他們的內部元素也都指向了不同的對象。
小結:
思路一:利用切片操作和工廠方法list方法拷貝就叫淺拷貝,只是拷貝了最外圍的對象本身,內部的元素都只是拷貝了一個引用而已。
思路二:利用copy中的deepcopy方法進行拷貝就叫做深拷貝,外圍和內部元素都進行了拷貝對象本身,而不是引用。
字符串
1,創建字符串
2,訪問字符串的值
isstr=[0]\isstr=[2:]
3,改變字符串的值
isstr=astr[3:] + bstr[:5]
4,刪除字符串和字符串的值
isstr=''
del isstr
字符串和操作符
比較操作符: =\< > \ !=
切片操作符:[] \ [:] 切片,正反向切片,而不能夠進行反轉
成員操作符: in not in
連接符: +
內建函數
cmp() 比較大小
len()
max() and min()
enumerate()
zip()
raw_input()
str()
列表
1,創建列表
list1=[]
2,訪問列表
list1[1:3]
list1[2:5]
3,更新列表
list1.append()
list1.insert(2)=x
4,刪除列表
del list1
操作符
= < > !=
[] [:]
+
*
內建函數
cmp()
len()
max()
min()
sorted()
reversed()
enumerate()
zip()
sum()
list()
tuple()
列表類型內建函數
list.append()
list.count()
list.extend()
list.insert()
list.pop()
list.remove()
list.reverse()
list.sort()
列表的特殊特性: 暫時不看!
1,堆棧
2,隊列
元組
python-序列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.