Python列表學習

2022-09-12 02:30:09 字數 2609 閱讀 2673

python中的列表表示:

python中的列表相當於oc中的陣列,它們都會有增刪改查的方法,這裡就將這兩種語言中的列表和陣列進行對比學習。

首先先來寫組oc中的陣列的表達方式:nsarray *namesarr = [nsarray arraywithobjects,@"zhang",@"wang","li",@"zhao"];這就是oc中陣列的建立方式。

在來寫組python中列表的建立方式  names = ["zhang","wang","li","zhao","qian"] 這就使python中的列表表示方法。

oc中陣列包涵有可變陣列和不可變的陣列,在像陣列中增加刪除乙個元素的時候我們需要用到可變陣列nsmutablearray,但是在python中就沒有這樣的區分。

首先我們來看一下像陣列中增加元素:

oc:nsmutablearray *arr = [nsmutablearray arraywithobjects:@"zhang",@"wang",@"li",@"zhao", nil];

[arr addobject:@"qian"]; 在陣列中最後新增乙個qian的元素    

[arr insertobject:@"liu" atindex:1]; 在索引為1的位置新增liu元素

py:names = ["zhang","wang","li","zhao","qian"]

names.insert(1,"liu")相當oc中insertobject的方法 在索引為1的位置新增liu元素

在來看一下刪除:

oc:[arr removeobject:@"wang"]; 移除為wang的元素

[arr removeobjectatindex:2];移除索引為2的元素 

[arr removeobjectsinrange:nsmakerange(0, 3)]; 移除從0開始3個單位長度的中的元素

[arr removeallobjects];移除所有元素

[arr removelastobject];移除最後乙個元素

py:names.remove("zhang");移除zhang這個元素

del names[1] 移除索引為1的元素

記下來看下修改陣列中的元素:

oc:[arr setobject:@"sss" atindexedsubscript:1]; 將索引為1的元素修改為sss

[arr replaceobjectatindex:1 withobject:@"sss"];將索引為1的元素修改為sss

py:names[0]="sss"取出索引為0的修改為sss

最後我們再來看一下查:

oc:nsstring *string = arr[0];檢視索引為0的元素

nsstring *string = [arr firstobject];

nsstring *string1 = [arr lastobject];

py:names[0];檢視索引為0的元素

names[1:3] 切邊 他查詢出來的是wang 和 li 為什麼查出來的不是wang li zhao 呢 這裡就是這樣表明顧頭不顧尾,就像當時取出索引為 1,2的元素

當在列表中元素特別多我們想取出python中列表最後乙個元素時我們要這樣表示  names[-1], -1就代表取出最後乙個元素

names[-3:-1] 這就是取出 li 和 zhao 。如果我們想取出-3後面所有元素我們要這樣寫 names[-3:0] 或者[-3:]0可以忽略不寫

總結完增刪改查後剩下的還有一些小點:

names.count("zhang") 列表中有幾個是zhang這個元素的

names.index("zhang") zhang這個元素的索引

names.sort()陣列的排序按照ascllm 特殊字元,數字,大寫字母,小寫字母。

names.reverse() 陣列的反轉

names.extend() 陣列的擴充套件 

這裡說一下copy這個方法:

names = ["zhang","li","wang","zhao"]

names2 = names.copy()

names[0] = "張"

這裡輸出 names = ["張","li","wang","zhao"]  names2 = ["zhang","li","wang","zhao"]

但是如果出現這樣的形式

names = ["zhang","li","wang","zhao",["liu","ding"]]

names2 = names.copy()

names[0]= "張";

names[4][1] = "六";

在輸出 names = ["張","li","wang","zhao",["六","ding"]]  names2= ["zhang","li","wang","zhao",["六","ding"]]

這裡解釋一下copy這裡的copy是一種淺copy它只copy第一層 ["liu","ding"]就相當乙個記憶體位址指向記憶體,修改完成後記憶體中儲存的是「六」,在names2中["liu","ding"]也是個記憶體位址指向這個記憶體,表示出來就是["六","ding"]

如果想要完全copy列表的話需要 import copy  

names2 = copy.deepcopy(names)

python列表學習 python列表學習整理

list1 列表 是一種有序的集合,可以隨時新增和刪除其中的元素。list1 lily lucy peter abel 列印列表 print list1 遍歷列表 end 迴圈中不換行print x,end for x in list1 print x 列表個數 print len list1 列表...

python列表學習 Python列表學習

python中的列表表示 python中的列表相當於oc中的陣列,它們都會有增刪改查的方法,這裡就將這兩種語言中的列表和陣列進行對比學習。首先先來寫組oc中的陣列的表達方式 nsarray namesarr nsarray arraywithobjects,zhang wang li zhao 這就...

Python學習 列表

列表由一系列按特定順序排列的元素組成 元素之間沒有任何關係 用 表示列表,並用 號分隔其中的元素 可直接通過該元素的位置和索引訪問 str a b c print str 0 索引從0開始 索引為 1時訪問列表最後乙個元素 直接用索引修改 str 0 d insert loc,value 在索引為l...