python入門——python數據類型
- 2020 年 1 月 3 日
- 筆記
一、數據類型
1、核心數據類型:
- 數字:int, long(python3.5已經沒有), float, complex, bool
- 字符:str, unicode
- 列表:list
- 字典:dict
- 元組:tuple
- 集合:set(可變集合),frozenset(不可變集合)
- 文件:file
二、數字類型
python的數字字面量:整數,布爾型,浮點數,複數,所有數字類型均為不可變
數字操作:+ , -, *, /, //, **, %, -x, +x
三、列表
列表是一系列按照特定順序排列的元素組成可以是字母、數字等;
在python中,列表用方括號[ ],來表示列表。作為一個方括號內的逗號分隔值出現。列表的數據項不需要具有相同的類型。
1、列表的操作方法和函數
列表操作包含以下函數: 1、cmp(list1, list2):比較兩個列表的元素 2、len(list):列表元素個數 3、max(list):返回列表元素最大值 4、min(list):返回列表元素最小值 5、list(seq):將元組轉換為列表
列表操作包含以下方法: 1、list.append(obj):在列表末尾添加新的對象 2、list.count(obj):統計某個元素在列表中出現的次數 3、list.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表) 4、list.index(obj):從列表中找出某個值第一個匹配項的索引位置 5、list.insert(index, obj):將對象插入列表 6、list.pop(obj=list[-1]):移除列表中的一個元素(默認最後一個元素),並且返回該元素的值 7、list.remove(obj):移除列表中某個值的第一個匹配項 8、list.reverse():反向列表中元素 9、list.sort([func]):對原列表進行排序
10、list.append(): 在列表末尾添加一個元素
2、訪問元素列表及切片
列表的訪問可以是標準輸出,也可以是通過索引或切片使用列表中元素的值;
與字符串的索引一樣,列表索引從0開始,如果是反序,最後一個元素是 「-1」,倒數第二個元素的列下標識 「-2」。
列表可以進行截取、組合等。
使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式截取字符。
#!/usr/bin/python # -*- coding: UTF-8 -*- china = ["Chinese","yellowskin",960,16,"北京"] #輸出列表 print(china) #輸出特定值,如第二個元素,即索引為1的; print(china[1]) #輸出最後兩個元素 print(china[-2:]) #輸出前三個元素 print(china[:2]) #輸出最後兩個元素外的所有元素 print(china[:-2]) #輸出第二到第五的元素; print(china[1:4]) #列表輸出可以結合字符處理方法 print(china[1].title()) print(china[1].upper()) #循環訪問列表的元素: for i in china: print(i)
3、修改、添加、刪除列表元素
由於列表大多數情況下是動態的,那麼他的元素、長度等都是不斷變化的;
修改元素通過列下標直接賦值;
添加元素可以通過append()方法在末尾添加,可以通過insert()方法在特定位置添加;
刪除元素可以通過pop()方法和del語句刪除,當然你也可以通過del 刪除整個列表;
#!/usr/bin/python # -*- coding: UTF-8 -*- china = ["Chinese","yellowskin",960,16,"北京"] #將列表第二個元素修改為「blackeyes」 china[1] = "black eyes" print(china) #在列表末尾添加元素; china.append("Changjian") print(china) #在第三個前插入一個元素: china.insert(2,'Shanghai') print(china) #列表中刪除元素,del語句: del china[-2] print(china) #pop()方法刪除任意元素: china.pop(2) print(china) #根據值刪除元素 china.remove(960) print(china)
輸出結果:
['Chinese', 'black eyes', 960, 16, '北京']
['Chinese', 'black eyes', 960, 16, '北京','Changjian']
['Chinese', 'black eyes', 'Shanghai', 960,16, '北京', 'Changjian']
['Chinese', 'black eyes', 'Shanghai', 960,16, 'Changjian']
['Chinese', 'black eyes', 960, 16,'Changjian']
['Chinese', 'black eyes', 16, 'Changjian']
4、對列表進行排序
對列表進行排序的方法有
sort() 對列表進行永久排序;
sorted() 對列表進行臨時排序
reverse() 倒着打印列表,永久排序,恢復時可以再次調用reverse()
len() 取出列表的長度;
#!/usr/bin/python # -*-coding: UTF-8 -*- counts =[1,3,5,7,9,2,4,6,8,10] counts1= [] for i incounts: counts1.append(i) print(counts1) print(counts) counts.sort() print(counts) print(sorted(counts1)) print(counts1) counts1.reverse() print(counts1) print(len(counts))
5、遍歷列表
5.1、for循環遍歷列表和複製列表
counts =[1,3,5,7,9,2,4,6,8,10] counts1= [] for i incounts: counts1.append(i) print(counts1) print(counts)
5.2、創建數值列表
counts2 = [ j**3 for j in range(1,10)] print(counts2) type(counts2[2])
使用range創建數字列表
counts3 = list(range(1,21,2))
print(counts3)
type(counts3[2])
5.3、列表的簡單統計
counter = list(range(1,21,2))
min(counter)
max(counter)
sum(counter)
四、元組
- 元組看起來猶如列表,但使用圓括號()來標識。定義元組後,就可以使用索引來訪問其元素;
- 元組的遍歷和列表一樣可以使用for循環等;
- 元組是不能修改其元素的,但可以給存儲元組的變量賦值;
- 括號()既可以表示元組,又可以表示數學公式中的小括號。所以,如果元組只有1個元素,就必須加一個逗號,防止被當作括號運算;
- 元組與列表的區別,元組它的關鍵是不可變性。
- 如果在程序中以列表的形式傳遞一個對象的集合,它可能在任何地方改變;如果使用元組的話,則不能。
- 元組提供了一種完整的約束。
1、字典基本操作
字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
鍵必須是唯一的,但值則不必。
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。
- 要獲取字典中的值,可依次指定字典名和放在方括號內的鍵;如print(dict[『key]』)
- 要添加鍵-值對,可依次指定字典名、用方括號括起來的鍵和對應的值;
- 使用字典存儲大量數據或者編寫能自動生成大量鍵-值得代碼時,通常需要先定義一個空字典,如:dict = {}
- 要修改字典中的值,可依次指定字典名、用方括號括起來的鍵以及與該鍵相關的新值;
- 要刪除鍵-值對,可使用del語句鍵對應的鍵-值對徹底刪除。使用del語句必須指定字典名和要刪除的鍵;
示例:
#coding:UTF-8 import string #定義一個空字典dict1 dict1 = {} #利用for循環給dict1賦值 i = 1 for word in string.ascii_lowercase: if i < 14: dict1[i] = word else: dict1[word] = i i += 1 print(dict1) #訪問字典中的值 print(dict1[13]) print(dict1['o']) #添加鍵-值對 dict1[27] = "error" print(dict1[27]) #修改字典中的值 dict1[27] = "out of range" print(dict1[27]) #刪除鍵值對 print(dict1['z']) del dict1['z'] print(dict1)
2、遍歷字典
在遍歷字典前,先學習一下字典內置的函數和方法,在遍歷時,結合函數和方法遍歷輸出;
python字典的函數。
方法 |
解釋 |
---|---|
len(dict) |
計算字典元素個數,即鍵的總數。 |
str(dict) |
輸出字典以可打印的字符串表示。 |
type(variable) |
返回輸入的變量類型,如果變量是字典就返回字典類型。 |
dict.clear() |
刪除字典內所有元素 |
dict.copy() |
返回一個字典的淺複製 |
dict.fromkeys(seq [,value]) |
創建一個新字典,序列seq中元素作為字典的鍵,value(可選)作為字典所有鍵對應的初始值。–seq為一個列表; |
dict.get(key[, default=None]) |
返回指定鍵的值,如果值不在字典中返回default值(默認為none) |
key in dict |
如果鍵在字典dict里返回true,否則返回false。key — 在字典中要查找的鍵 |
dict.items() |
以列表返回可遍歷的(鍵, 值列表。 |
dict.keys() |
以列表返回字典中的所有值。 |
dict.setdefault(key, default=None) |
與get()類似, 但如果鍵不存在於字典中,將會添加鍵並將鍵值設為default。 |
dict.update(dict1) |
把字典dict1的鍵/值對更新到dict里。無返回值。 |
pop(key[,default]) |
刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。否則,返回default值 |
popitem() |
隨機返回並刪除字典中的一對鍵和值。 |
#coding:UTF-8 import string #定義一個空字典dict1 dict1 = {} #利用for循環給dict1賦值 i = 1 for word in string.ascii_lowercase: if i < 14: dict1[str(i)] = word elif i > 14: dict1[word] = str(i) i += 1 print(dict1) #遍歷所有的鍵-值對 for key,value in dict1.items(): print(key) print(value) print(dict1['1'].upper()) #遍歷字典中所有的鍵 for key in dict1.keys(): print(key) #按照順序遍歷字典中所有的鍵,可以用sorded()來實現 for key in sorted(dict1.keys()): print(key.upper() + "大爺的") #遍歷字典中多有的值,並使用set()方法去重; dict1['27'] = 'a' print(dict1['27']) for value in set(dict1.values()): print(value) print(dict1) #字典的淺複製 dict2 =dict1.copy() print(dict2) #更新字典 dict3 = {} dict3.update(dict1) print(dict3) #刪除字典內所有的元素 dict1.clear() print(dict1)
3、嵌套
字典除了單獨使用外,經常會涉及到嵌套使用;列表、字典、元組等可以相互嵌套使用;
使用的方法和對應的列表、字典、元組的使用方法類似,不多做說明;