數據結構(Python)

● Python中共有68種內置序列(有些內置函數也能返回一些特殊序列,可以對它進行一些通用的序列操作),其中有三種比較常見:列表,元組,字符串
● Python中大部分序列都可以進行通用操作,包括索引,切片,相同類型序列想加,乘法,成員資格,長度,最大值,最小值。
● 列表可以根據索引下標來獲取元素的值

1、python文件開頭utf-8格式的理解
2、程序中讀取文件時utf-8格式的理解

aa.py文件代碼示例:

#!/usr/bin/python

-- coding:utf-8 --

fr1 = open(“goods_information”, “r”, encoding=“utf-8”)
print(fr1.read())

其中# – coding:utf-8 --代表Python解釋器對本文件的解碼格式,fr1 = open(“goods_information”, “r”, encoding=”utf-8”)中的utf-8代表讀取文件進行解析時的解碼格式,我感覺最後都指定一下。
即:
第二行代碼中的utf-8代表對本文件aa.py的解碼格式,第4行中的utf-8代表對讀取文件goods_information的解碼格式。

● 索引使用的語法:變量後面加中括號,在中括號中輸入所需元素的編號
● 索引可以從左往右,也可以從右往左

● 切片操作下:
● 列表的輸出元素用中括號括起來
● 元組的輸出元素用小括號括起來
● 字符串不用括起來
[圖片]
● 切片操作需要提供兩個索引作爲邊界,第一個索引包含在切片內部,第二個索引不包含在切片內部
● 切片中,序列的索引下標可以超出其真實的索引長度
● 所有的序列的切片都有個默認的"a"和"b",即爲第一個參數和第二個參數,其中a的默認值是0,b的默認值是到該序列的最後
● 如果切片的兩個索引都設置爲空,則可以獲取整個序列
● 切片操作中,可以通過使用第三個參數: 步長 默認情況下爲1,寫在兩個索引參數之後(步長不支持0,否則會報錯但步長支持負數)
● 正數的步長開始點必須小於結束點,負數的步長開始點必須大於結束點

● 序列相加
● 序列和序列之間通過加號連接連接後的結果還是相同類型的序列,列表和列表連接的結果仍然是列表,字符串和字符串連接的結果仍然是字符串。
● 不同類型的序列是不能做連接的,Python解釋器只能在相同的序列之間做連接操作
● 成員資格指判斷一個元素是否包含在序列中Python中使用運算符 in 來判斷
● in 運算符會判斷左邊的元素是否報告在右邊的序列中,如果包含就會返回True(真),否則就會返回False(假)
● 判斷字符串序列是否包含某元素,則該元素必須是字符串
● len函數可以獲取序列的長度
● min函數可以獲取序列的最小值
● max函數可以獲取序列的最大值
● sum函數可以對序列求和,但是sum函數求和要求序列的元素必須全部都是 int

● 列表
● 一個列表是可以存儲不同類型的數據的,並且修改的新元素也不需要和原來的元素類型一致。但是,更新列表的索引必須是已存在的索引,不能對超出列表長度的索引更新元素
● 可以使用append函數方法在列表的最後追加新元素,但append函數每次只能新增一個元素,append無論後面是單個元素還是一個列表,都會把它當成一個新元素追加在原來的列表的後面,而extend函數則會展開,把新列表拆開追加在原來的列表後面
● insert函數需要兩個參數,第一個參數表示要插入的新元素的位置,第二個參數表示要插入的新元素。insert和append一樣,一次只能新增一個元素
● 刪除
● pop函數可以刪除指定位置的元素,並且把這個元素作爲返回值返回,如果不指定位置則默認刪除最後一個元素
● remove函數可以根據內容來對元素進行刪除,會刪除查找到的第一個元素,並且沒有返回值
● del關鍵字後是指定的列表元素和索引。del不僅可以刪除列表的元素,還能刪除其他元素

● 查找
● Python提供了index方法用於查找元素在列表中的位置,但是要注意,如果元素不在列表中,Python解釋器就會報錯。

● 隊列的其他操作

  1. reverse方法可以反轉隊列,和“[::-1]”有些類似,但是reverse方法修改的是原來的隊列,並且沒有返回值
  2. count方法用於統計某個元素在列表中出現的次數
  3. sort方法用於對列表進行排序,還可以自定義排序方式。sort會修改並對原列表排序,沒有返回值。

● 元組
● 元組與列表十分相似,大部分方法都通用,但是元組與列表的最大區別是列表可以修改、可以讀取、可以刪除,而元組創建之後則不能修改,不能刪除單個元素,但是可以刪除整個元組。
● 如果元組只有一個元素,則這個元素後面必須要有“ ,”,否則元素就還是其原來的類型。
● 由於元組不能修改,所以元組也不能單獨刪除部分元素,要刪除只能刪除整個元組
● 元組雖然不能修改,但是列表所支持的查詢方法基本上元組都支持。也正是因爲元組不能被修改,所以元組的查詢速度要比列表更快
● 元組支持count操作,可統計某個元素在元組中出現的次數
● 元組支持index操作,可查找元素在元組中的索引位置

● 字典
● 字典的元素是成對出現的,每個元素都是由 “ :”和鍵值對(“ :”左邊的稱爲鍵或者Key,右邊的稱爲值或者Value)構成,元素和元素之間用“ ,”分隔,整個字典用花括號“ {} ”包圍。字典的鍵必須是唯一,不重複的,如果是空字典,則可以直接使用“ {} ”表示
● 在Python中,字典其實就是一組鍵值對。字典元素都是成對出現的,每個元素必須要有鍵和對應的值。訪問字典跟查字典一樣,需要用鍵去“ 查找”值。
● 字典和列表一樣,都是一種可修改的結構。
● 修改
● english = {
“we”:“我們”,
“world”:“城市”,
“company”:“公司”,
}
print(english)
english[“world”] = “世界”
print(english)
● 刪除
● english = {
“we”:“我們”,
“world”:“城市”,
“company”:“公司”,
}
print(english)
english[“world”] = “世界”
print(english)
del english[“world”]
print(english)
● clear可以用於清空字典的所有元素,使字典變成空字典,而不需要一個一個去刪除。
● copy方法可返回一個具有相同鍵值對的新字典。使用copy對獲取到的字典做修改,原始的字典不受影響。如果字典的元素值也是字典,那麼copy只會影響最外層字典,元素內部還是引用
● fromkeys方法用於創建一個新字典,用序列中的元素作爲字典的鍵,第二個參數作爲所有參數對應的初始值
● get方法返回鍵對應的值,如果字典不存在對應的鍵則返回默認值(None)
● keys方法可以返回一個列表,裏面包含了字典的所有鍵。keys方法常常用來判斷一個鍵是否存在於字典中,可以與“ in ”操作符組合使用
● values方法用來返回一個列表,裏面包含了字典的所有值
● items方法返回一個列表,裏面包含了所有鍵的列表和所有值的列表(準確的說items返回的並不是一個list類型,只是類似)

● 集合(唯一性)
● 集合類似於列表,但集合不會包含重複的值
● 定義集合的時候注意:如果是空集合,必須用 set()定義;如果包含元素,可以使用花括號 {} 定義,也可以用set加上列表來定義
● 在集合中添加元素可以使用add方法
● 在集合中刪除元素可以使用remove方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章