1. 程式人生 > 程式設計 >Python全棧之列表資料型別詳解

Python全棧之列表資料型別詳解

前言

列表(list)同字串一樣都是有序的,因為他們都可以通過切片和索引進行資料訪問,且列表是可變的。

建立列表的幾種方法

第一種

name_list = ['Python','PHP','JAVA']

第二種

name_list = list(['Python','JAVA'])

建立一個空列表

>>> li = list() 
>>> type(li)
<class 'list'>

把一個字串轉換成一個列表

>>> var="abc"
>>> li = list(var)
>>> li
['a','b','c']

list在把字串轉換成列表的時候,會把字串用for迴圈迭代一下,然後把每個值當作list的一個元素。

把一個元組轉換成列表

>>> tup=("a","b","c")
>>> li=list(tup)
>>> type(li)
<class 'list'>
>>> li
['a','c']

把字典轉換成列表

>>> dic={"k1":"a","k2":"b","k3":"c"}
>>> li=list(dic)
>>> type(li)
<class 'list'>
>>> li
['k3','k1','k2']

字典預設迴圈的時候就是key,所以會把key當作列表的元素

>>> dic={"k1":"a","k3":"c"}
>>> li=list(dic.values())
>>> li
['c','a','b']

如果指定迴圈的是values,那麼就會把values當作列表的元素

列表所提供的方法

在列表末尾新增新的物件

append(self,p_object):

>>> name_list = ['Python','JAVA']
>>> name_list.append("C#")
>>> name_list
['Python','JAVA','C#']

統計某個元素在列表中出現的次數

count(self,value):

屬性 描述
obj 列表中統計的物件

>>> name_list = ['Python','PHP']
>>> name_list.count("PHP")
2

用於在列表末尾一次性追加另一個序列中的多個值

extend(self,iterable):

屬性 描述
seq 元素列表

>>> name_list = ['Python','Python']
>>> name_OS = ['Windows','Linux','Unix']
>>> name_list
['Python','Python']
>>> name_OS
['Windows','Unix']
# 把列表`name_OS`中的內容新增到`name_list`的尾部
>>> name_list.extend(name_OS)
# 輸出的結果
>>> name_list
['Python','Python','Windows','Unix']

從列表中找出某個值第一個匹配項的索引位置

index(self,value,start=None,stop=None):

屬性 描述
value 列表中統計的物件

# 查詢物件所在的位置
>>> name_list = ['Python','JAVA']
>>> name_list.index("PHP")
1

將指定物件插入列表

insert(self,index,p_object):

屬性 描述
index 物件obj需要插入的索引位置
obj 要出入列表中的物件

>>> name_list = ['Python','JAVA']
# 把位置`1`的內容換成`C`,後面的自動退格一個位置
>>> name_list.insert(1,"C")
>>> name_list
['Python','C','JAVA']

移除列表中的一個元素,並且返回該元素的值

pop(self,index=None):

屬性 描述
index 可選引數,要移除列表元素的位置

>>> name_list = ['Python','JAVA']
# 刪除位置1上面的內容,並且返回刪除的字串
>>> name_list.pop(1)
'PHP'
>>> name_list
['Python','JAVA']

移除列表中某個值的第一個匹配項

remove(self,value):

屬性 描述
value 列表中要移除的物件

>>> name_list = ['Python','Python']
# 每次刪除的時候只會把第一次匹配到的值刪除,第二個值不會被刪除
>>> name_list.remove("Python")
>>> name_list
['PHP','Python']
>>> name_list.remove("Python")
>>> name_list
['PHP','JAVA']

當然刪除元素還可以直接使用del進行刪除:

>>> L = [1,2,3]
>>> del L[1]
>>> L
[1,3]

又或者使用切片賦值進行元素刪除

>>> L = [1,3]
>>> L[1:2] = []
>>> L
[1,3]

反向輸出列表中的元素

reverse(self):

>>> name_list = ['Python','JAVA']
>>> name_list
['Python','JAVA']
>>> name_list.reverse()
>>> name_list
['JAVA','Python']

對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式

sort(self,cmp=None,key=None,reverse=False):

>>> name_list = ['Python','JAVA']
>>> name_list.sort()
>>> name_list
['JAVA','Python']

清除列表內所有元素

>>> li
['Ansheng']
>>> li.clear()
>>> li
[]

同字串一樣,列表也支援解析,稱為列表解析

>>> li = [x for x in range(1,20)]
>>> li
[1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]

總結

以上就是我在處理客戶端真實IP的方法,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。