列表,元祖,字典的詳細概述
list(列表):
list是一種有序的集合,可以隨時添加和刪除其中的元素
定義一個列表:
classmates = [‘Michael‘,‘Bob‘,‘Tracy‘]
用len()函數可以獲得列表元素的個數:
In [3]: len(classmates)
Out[3]: 3
也可以用索引訪問每一個位置的元素,記住索引是從0開始的,超出範圍之後就會報錯:
In [5]: classmates[0]
Out[5]: ‘Michael‘
In [6]: classmates[1]
Out[6]: ‘Bob‘
In [7]: classmates[3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-7-81a27e3ce05f> in <module>()
----> 1 classmates[3]
IndexError: list index out of range
列表的相關操作:
<1>添加元素("增"append,extend,insert):
為什麽是三個呢,當然是有所不同的,ok 我們舉例說明
In [8]: names = [100,200,‘300‘,‘ok‘]
In [9]: names.append("400")
In [10]: names
Out[10]: [100, 200, ‘300‘, ‘ok‘, ‘400‘]
看到效果了吧,是的 append就是在列表的最後添加
extend就是兩個列表的合並
In [13]: names2 = [500,600]
In [14]: names.extend(names2)
In [15]: names
Out[15]: [100, 200, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
Out[15]: [100, 200, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
insert(index.object) 在指定位置index前插入元素object:
In [16]: names.insert(0,"000")
In [17]: names
Out[17]: [‘000‘, 100, 200, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
<2>修改元素: ("改" 指定索引修改)
In [18]: names[2]=1000
In [19]: names
Out[19]: [‘000‘, 100, 1000, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
<3>查找元素 ("查" in,not in,index,count)
in和not in 一般做判斷用
查找元素是否存在
in(存在),如果存在結果為Ture,否則為False
not in(不存在)如果不存在結果為Ture,否則為False
In [22]: 100 in names
Out[22]: True
In [23]: 100 not in names
Out[23]: False
index(查找索引所對應的元素):
In [19]: names
Out[19]: [‘000‘, 100, 1000, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
In [20]: names.index(‘ok‘)
Out[20]: 4
count 查找列表中元素的個數:
In [21]: names.count(‘ok‘)
Out[21]: 1
<4>("刪"del,pop,remove)
del : 根據下標位刪除,也可以刪除所有變量
In [24]: names
Out[24]: [‘000‘, 100, 1000, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
In [25]: del names[2]
In [26]: names
Out[26]: [‘000‘, 100, ‘300‘, ‘ok‘, ‘400‘, 500, 600]
pop: 默認只能刪除列表的最後一個 並返回給你
In [27]: names.pop()
Out[27]: 600
In [28]: names
Out[28]: [‘000‘, 100, ‘300‘, ‘ok‘, ‘400‘, 500]
remove : 刪除指定的內容
In [31]: names.remove(‘000‘)
In [32]: names
Out[32]: [100, ‘300‘, ‘ok‘, ‘400‘, 500]
<5>排序(sort,reverse)
sort方法將list按照特定順序重新排列,默認從小到大,接參數reverse=Ture 可從打的大小排序
In [36]: num = [1,5,6,32,23,67]
In [37]: num.sort()
In [38]: num
Out[38]: [1, 5, 6, 23, 32, 67]
註:排序必須保證元素是同等類型,否則會報錯.
reverse方法就是將list逆置:
In [42]: num = [1,5,6,32,23,67]
In [43]: num.reverse()
In [44]: num
Out[44]: [67, 23, 32, 6, 5, 1]
Tuple(元祖)
元祖與列表類似,不同之處在於元祖的元素不能修改,元祖使用小括號,列表使用中括號
元祖的各種操作訪問和列表基本是一樣的,
下面舉一個例子:
In [46]: num = [1,5,6,32,23,67]
In [47]: my_tuple = (100,200,num)
In [48]: my_tuple
Out[48]: (100, 200, [1, 5, 6, 32, 23, 67])
In [49]: my_tuple[2][1]= 20
In [50]: my_tuple
Out[50]: (100, 200, [1, 20, 6, 32, 23, 67])
大家可以仔細看看,從表面看呢 元祖是被修改了,其實不然,修改的只是list元素,而不是元祖.
dict(字典):
字典使用鍵-值(key-value)存儲,具有及快的查找速度
In [63]: my_dict = {"name":"laowang","age":25,"sex":"男"}
In [64]: my_dict["name"]
Out[64]: ‘laowang‘
在訪問一個字典的時候我們不可以用索引,用的是鍵,鍵在字典中是不可重復的
In [67]: my_dict.get("name")
Out[67]: ‘laowang‘
In [68]: my_dict.get("addr")
也可以用這種方法訪問,這種訪問一個不存在的鍵時,不會報錯,返回的是一個None 而上面的方法是會報錯的
字典中的添加:
In [69]: my_dict["addr"]="BJ"
In [70]: my_dict
Out[70]: {‘addr‘: ‘BJ‘, ‘age‘: 25, ‘name‘: ‘laowang‘, ‘sex‘: ‘男‘}
In [71]: my_dict["addr"]="SZ"
In [72]: my_dict
Out[72]: {‘addr‘: ‘SZ‘, ‘age‘: 25, ‘name‘: ‘laowang‘, ‘sex‘: ‘男‘}
可以使用以上方法添加,如果鍵不存在就是添加,如果已經存在就是修改
刪除的話 使用del 就可以
In [75]: del my_dict["addr"]
In [76]: my_dict
Out[76]: {‘age‘: 25, ‘name‘: ‘laowang‘, ‘sex‘: ‘男‘}
字典中的函數:
keys: 返回字典中所有的key的列表
In [76]: my_dict
Out[76]: {‘age‘: 25, ‘name‘: ‘laowang‘, ‘sex‘: ‘男‘}
In [77]: my_dict.keys()
Out[77]: dict_keys([‘name‘, ‘age‘, ‘sex‘])
values: 返回字典中所有的valuse的列表
In [78]: my_dict.values()
Out[78]: dict_values([‘laowang‘, 25, ‘男‘])
items:返回字典中的所有鍵值對
In [79]: my_dict.items()
Out[79]: dict_items([(‘name‘, ‘laowang‘), (‘age‘, 25), (‘sex‘, ‘男‘)])
字典的遍歷
key的遍歷:
In [82]: for key in my_dict.keys():
...: print(key)
...:
...:
name
age
sex
value的遍歷
In [83]: for value in my_dict.values():
...: print(value)
...:
laowang
25
男
遍歷字典的所有項
In [86]: for dic in my_dict.items():
...: print("key=%s,value=%s"%(dic))
...:
...:
key=name,value=laowang
key=age,value=25
key=sex,value=男
今天到這兒呢,已經結束了,我之所以把代碼前面的也復制過來,是希望想學習python的小夥伴,可以自己打一邊代碼 而不是復制.
列表,元祖,字典的詳細概述