1. 程式人生 > >列表,元祖,字典的詳細概述

列表,元祖,字典的詳細概述

eve 結束 mos obj mod 例子 個數 bob sort

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的小夥伴,可以自己打一邊代碼 而不是復制.

列表,元祖,字典的詳細概述