1.定義 python
1.數據結構:經過某種方式組織在一塊兒的數據元素的集合。這些數據元素能夠說數字或者字符,甚至能夠是其餘數據結構。在python中,最基本的數據結構是序列。算法
2.索引:序列中的每一個元素被分配一個序號。注意索引默認從0開始。數據結構
在python中,內建了6中序列:列表、元組、字符串、unicode字符串、buffer對象、xrange對象。app
2.通用序列操做 ide
全部序列均可以進行某些特定的操做:索引、分片、加、乘、檢查某個元素是否屬於序列的成員(成員資格)、內建函數(長度、最小值、最大值)。在這裏還有一個重要的操做未說起-----迭代,指依次對序列中的每一個元素重複執行某些操做,後續會詳細分析,這裏就不作過多的說明。
函數
2.1索引 ui
序列中全部元素都是有編號的----從0開始,能夠經過編號進行訪問。經過狀況下,索引值爲正數,可是python中也能夠爲負數,表明從右開始計數。若爲負數時,開頭第一位數爲-1,而不是0,這樣避免了與從左開始的第一個元素重合。spa
1 __author__ = 'zcy' 2 3 greeting='Hello' 4 5 print(greeting[0]); 6 7 print(greeting[-1]);
2.2分片 3d
分片,我的理解經過指定左右兩個數字來,獲取其中間對應的值。分片經過冒號隔開兩個索引來實現,至關因而索引的升級版。提取時,包含左邊的索引,而不包含右邊的索引。注意若從左開始,索引也是從0 開始,從右邊時,從-1開始。code
在分片中,只要最左邊的索引比它右邊的晚出如今序列中,結果就是一個空序列。若是分片所得的包含末尾的元素,那麼只需置空最後一個索引。
1 numbers=[1,2,3,4,5,6,7,8,9,10] 2 print(numbers[3:6]) 3 print(numbers[0:1]) 4 print(numbers[-5:-1]) 5 print(numbers[-11:0]) 6 print(numbers[-3:]) 7 print(numbers[:3]) 8 print(numbers[:])
分片的開始和結束都須要指定,而在分片中存在另一個參數---步長,一般是隱式設置的,默認爲1.在分片中咱們也能夠設置步長,按照設置的步長來遍歷序列中的元素。
1 numbers=[1,2,3,4,5,6,7,8,9,10] 2 print(numbers[0:10:1]) 3 print(numbers[0:10:2]) 4 print(numbers[::4]) 5 print(numbers[8:3:-1]) 6 print(numbers[10:0:-2]) 7 print(numbers[0:10:-2]) 8 print(numbers[::-2])
開始點的元素包括在結果之中,而結束點的元素則不在分片以內。
當使用一個負數做爲步長時,必須讓開始點大於結束點。對於一個正數步長,會從序列的頭開始向右提取元素,而對於負步長,則是從序列尾部開始向左提取元素。
2.3序列相加
使用加運算符能夠進行序列的鏈接操做
1 number=[1,2,3]+[4,5,6] 2 print(number) 3 4 number1='Hello, '+'world!' 5 print(number1) 6 7 number2=[1,2,3]+'world!' 8 print(number2)
正如上面截圖,若爲贊成類型時,能夠進行鏈接,不然沒法鏈接,拋出異常。
2.4乘法
用序列乘以某個數字,會獲得一個新的序列,而在新的序列中,原來序列將被重複乘以這個數。
1 print('python,'*5) 2 3 print([2]*10) 4 5 print([None]*10)
2.5成員資格
成員資格即檢查當前元素是否在當前序列中。若存在,返回true,不然返回false。
str='python' print('p' in str) print('a' in str)
2.6長度、最小值和最大值
長度:len;最小:min;最大:max
1 numbers=[100,20,300] 2 print(len(numbers)) 3 print(max(numbers)) 4 print(min(numbers))
2.列表:Python的‘苦力’
列表使用於序列的標準操做,是能夠修改的。下面經過代碼來看一下列表所擁有的特性。
1 # 元素複製 2 number=[1,2,3,4,5,6] 3 print(number) 4 number[1]=5 5 print('元素複製:',number) 6 7 # 刪除元素 8 del number[1] 9 print('刪除元素:',number) 10 11 # 分片賦值 12 number=[1,5] 13 number[1:1]=[2,3,4] 14 print('分片賦值:',number) 15 16 # 追加對象 append 17 number.append(10) 18 print('append:',number) 19 20 # 元素在列表中出現的次數 count 21 print('count:',number.count(1)) 22 23 # 將一個列表添加到另外一個列表中 extend 24 a=[1,2] 25 b=[3,4] 26 a.extend(b) 27 print('extend:',a) 28 29 # 找出摸個元素的索引 index 30 name=['a','a','c','d','e','f'] 31 print('index:',name.index('a')) 32 print('index:',name.index('g')) 33 34 # 將對象插入到列表中 insert 35 number=[1,2] 36 number.insert(1,'aa') 37 print('insert:',number) 38 39 # 移除列表中的一個元素,默認爲最後一個 40 print('pop:',number.pop()) 41 42 # 移除列表中某個值的第一個匹配項 43 x=['a','b','c'] 44 print('remove:',x.remove('a')) 45 46 # 將列表中元素反向存放 reverse 47 x=[1,2,3] 48 x.reverse() 49 print('reverse:',x) 50 51 # 列表中元素排序 sort 52 x.sort() 53 print('sort:',x) 54 55 56 返回結果: 57 [1, 2, 3, 4, 5, 6] 58 元素複製: [1, 5, 3, 4, 5, 6] 59 刪除元素: [1, 3, 4, 5, 6] 60 分片賦值: [1, 2, 3, 4, 5] 61 append: [1, 2, 3, 4, 5, 10] 62 count: 1 63 extend: [1, 2, 3, 4] 64 index: 0 65 File "H:/PythonProject/PythonBasics/bolg.py", line 8, in <module> 66 print('index:',name.index('g')) 67 ValueError: 'g' is not in list 68 insert: [1, 'aa', 2] 69 pop: 2 70 remove: None 71 reverse: [3, 2, 1] 72 sort: [1, 2, 3]
append方法,在列表末尾追加新的元素;而inset方法,在列表指定位置新增新的元素
extend與‘+’區別在於,extend方法返回一個修改的列表,而原始的鏈接操做,則是返回一個全新的列表
pop方法是惟一一個即能修改列表又能返回元素的列表方法
3.元組:不可變序列
元組也是屬於序列的一種,可是元組偏偏和列表相反,元組是不可變的,即定義以後,不能再改變元素。建立元組使用小括號,也能夠不用,爲了美觀和便於識別,仍是一般會加小括號。在元組中,若不使用括號,即便只有一個元素,也須要加括號,不然視爲普通的數字或字符。例如:1,2,3;(1,2,3);42,;(42,)
tuple,能夠將一個序列做爲參數轉換爲元組
1 print(1,2,3) 2 print((1,2,3)) 3 print(42,) 4 print((42,)) 5 6 7 number=[1,2,3] 8 print(number) 9 print(tuple(number))
4.字符串
字符串也是屬於序列的一種,全部它也擁有序列的一些基本特性。字符串是不可變的,由於分片複製都是不合法的。
一般格式化字符串使用‘%s’。%s稱爲轉換說明符,標記了須要插入轉換值的位置。若須要在字符串中包括百分號,則必須使用%%。
1 format='Hello,%s.%s enough for ya?' 2 values=('world','Hot') 3 print(format % values) 4 5 6 結果: 7 Hello,world.Hot enough for ya?
1.%字符:標記轉換說明符的開始
2.轉換標誌(可選):如s
3.最小字段寬度(可選):轉換後的字符串至少應該具備指定的寬度,若是是*,則寬度會從值元組中讀出
4.點(.)後跟精度值(可選):若是轉換的是實數,精度值就表示出如今小數點後的位數。若是轉換的是字符串,那麼該數字就表示最大字段寬度。
5.轉換類型:
轉換類型 | 含義 |
d、i | 帶符號的十進制正數 |
o | 不帶符號的八進制 |
u | 不帶符號的十進制 |
x | 不帶符號的十六進制(小寫) |
X | 不帶符號的十六進制(大寫) |
e | 科學計算法表示的浮點數(小寫) |
E | 科學計算法表示的浮點數(大寫) |
f、F | 十進制浮點數 |
g | 若是指數大於-4或者小於精度值則和e相同,其餘狀況與f形同 |
G | 若是指數大於-4或者小於精度值則和E相同,其餘狀況與F形同 |
C | 單字符(接受正數或者單字符字符串) |
r | 字符串(使用repr轉換人員python對象) |
s | 字符串(使用str轉換人員python對象) |
1 from math import pi 2 3 print('Price of eggs: $%d' % 42) 4 print('Jexadecimal price of eggs:%x'% 42) 5 print('%10f' % pi) 6 print('%10.2f' % pi) 7 print('%.5s' % 'Fuido van Rossum') 8 print('%010.2f' % pi) 9 10 結果: 11 Price of eggs: $42 12 Jexadecimal price of eggs:2a 13 3.141593 14 3.14 15 Fuido 16 0000003.14
字符串有不少列表的方法,同時也有特有的方法:
1.find:在一個字符串中,查找某個字符串,而後其左邊的索引,若不存在,返回-1
2.join:將列表的元素經過某個字符串鏈接
3.lower:返回字符串的小寫字字母版
4.replace:返回某個字符串的全部匹配項均被替換以後獲得的字符串
5.split:經過特殊的字符拆分當前字符串,若不提供,默認吧空格作份分隔符
6.strip:返回去除兩側空格的字符串
7.tanslate:替換字符串中的某些部分,優點在於能夠同時進行多行替換。
5.寫在最後
因爲最近時間緣由,白天須要忙工做上的事情,偶爾下班回家還須要處理本身的事情,可能更新較爲緩慢。寫博客的時間,大可能是下班以後,本身邊查閱書籍和本身的印象來寫的,主要是爲了加深本身的記憶以及本身動手能力,存在錯誤的地方,你們多多交流。若是對你有必定的幫助,麻煩點個贊!