Python中列表操作進階及元組


列表高級操作

一、遍歷列表

>>> ls=['a','d','it']
>>> for val in ls:
...     print (val)
... 
a
d
it

for后面是個冒號,for循環體行首是四個空格,對於python中所有的縮進,都使用四個空格,如果使用編輯器,為了方便,大家可能會使用Tab制表符代替空格,但要設置Tab制表符用四個空格替換,一般編輯器都會有這個功能。

二、創建數值列表

1、使用range方法幾乎可以創建任何形式的數值列表,一個簡單的示例如下:

>>> for val in range(1,5):
...     print (val)
... 
1
2
3
4

range方法包前不包后,這和很多編程語言的方法類似。

2、雖然上述示例,直接循環可獲取到range分配的每個列表中的元素值,但不能將range(1,5)直接賦值給一個變量,需要使用list方法進行轉換

直接將range(1,5)賦值給一個變量,輸出的結果並非我們想要的列表

>>> myls=range(1,5)
>>> myls
range(1, 5)

使用lsit轉換成列表

>>> myls=list(range(1,5))
>>> myls
[1, 2, 3, 4]

3、使用range也可以指定步長,如生成一個等差為3的等差列表

>>> eqdiffls=list(range(1,50,3))
>>> eqdiffls
[1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49]

三、列表簡單統計計算,如獲取最大值,最小值,求和等

>>> countls=list(range(1,10))
>>> countls
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> min(countls)
1
>>> max(countls)
9
>>> sum(countls)
45

四、列表解析

首先明確一下,python中計算平方的格式為val**2,如果要計算2的3次冪可以寫成2**3

>>> 4**2
16
>>> 2**3
8

如果要生成一組數的平方值的集合,我們可能需要這么做,如1到4的平方值的列表

>>> squarels=[]
>>> for val in range(1,5):
...     squarels.append(val**2)
... 
>>> squarels
[1, 4, 9, 16]

這種方式生成的列表需要四行,有一種方式通過一行代碼就可以生成上述所需的列表,這種方式就是列表解析。

>>> del squarels
>>> squarels=[val**2 for val in range(1,5)]
>>> squarels
[1, 4, 9, 16]

五、列表切片

格式為:list[startIndex:endIndex],同樣屬於包前不包后操作,切片生成了一個新的列表,但不會對之前的列表元素有任何影響

>>> squarels
[1, 4, 9, 16]
>>> squarels[1:3]
[4, 9]

從某個索引位置截取到列表結束位置

>>> squarels[2:]
[9, 16]

從開始位置截取到某個位置

>>> squarels[:2]
[1, 4]

如果startIndex和endIndex都不輸入,則相當於復制了一個列表

>>> squarels[:]
[1, 4, 9, 16]

列表復制也可使用copy方法,代碼更易閱讀

>>> squarels.copy()
[1, 4, 9, 16]

遍歷切片,和遍歷列表方法一樣

>>> for val in squarels[1:3]:
...     print (val)
... 
4
9

元組

元組比較簡單,與列表的區別是,初始化時使用小括號(),列表初始化使用中括號[];元組中的元素不能修改,列表中的元素允許修改

一、元組的初始化

元組使用小括號()進行初始化

>>> tup=()
>>> tup=(1,2,3)

二、遍歷,與列表一致

>>> for val in tup:
...     print (val)
... 
1
2
3

三、不能修改元組中變量,修改則報錯

>>> tup[1]=1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

四。雖然元組中元素不允許修改,但元組本身允許修改

>>> tup=(12)
>>> tup=(12,3)
>>> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM