1 .列表型別
概念:列表(list)是0個或多個物件引用的有序序列,屬於序列型別。與元組不同,列表的長度和內容都是可變的,可自由對列表中的資料進行增刪改查。列表沒有長度限制,元素型別可以不同,使用起來非常靈活。
拓展: 列表和陣列☆列表型別的操作。常用函式或方法如下表:每種程式語言都提供乙個或多個表示一 組元素的方法,例如,c語言採用數:組,python採用列表。在大多數語言中,陣列十分常見,僅有少量語言採用列表而不是陣列。列表和陣列類似,但並不完全一樣,列表和陣列有兩個顯著不同。
第一,陣列需要預先分配大小,列表則不需要。當建立乙個陣列時,必須指定陣列的大小,即它能容納元素的個數。如果不知道有多少元素,必須假設-乙個最大可能的數值,再按照這個最大值分配乙個陣列,並記錄陣列中實際儲存元素的個數,以保證實際使用的元素數量不超過陣列的限制。列表則沒有預分配大小的要求和限制,建立列表變數時不需要知道元素個數,可以在使用中動態插入任何數量的元素。
第二,陣列要求元素型別一致,列表則不需要。陣列要求每個元素具有相同的資料型別,如果某個元素是整數,則陣列中全部元素都是整數。列表沒有上述限制, 列表中不同元素的型別可以相同, 也可以不同,甚至,列表中的元素也可以是列表型別。列表的這個特點十分靈活,為程式編寫提供了很大的設計空間。
函式或方法
描述ls[i] = x
替換列表ls第i資料項為x
ls[i:j] = lt
用列表lt替換列表ls中的i到j項資料(不含j,下同)
ls[i:j:k]
用列表lt替換列表ls中i到j項以k為步長的資料
del ls[i:j]
刪除列表i到j的資料
del ls[i:j:k]
刪除列表i到j的資料,以k為步長
ls += lt 或 ls.extend(lt)
將列表增加到列表ls中
ls *= n
複製列表ls n次
在ls中追加乙個元素x
ls.clear()
刪除所有ls裡的資料
ls.copy()
生成乙個新列表,複製ls所有元素
ls.insert(i,x)
在列表的i位置插入x元素
ls.pop(i)
在ls中取走並刪除i元素
ls.remove(x)
刪除列表**現的第乙個元素x
ls.reverse()
反轉ls元素
ls.index(x[,[i[,j])
返回查詢x第一次出現的索引,i為開始查詢,j為結束查詢。
>>
> a =[20
,10,50
,40,30
]#列表的建立
>>
>
type
(a)<
class
'list'
>
>>
> student =
['張三'
,'李四'
,'王五'
]#列表的追加
>>
'陳六'
)>>
> student
["張三"
,'李四'
,'王五'
,'陳六'
]>>
> student +=
['貂蟬'
,'豬八戒'
]>>
> student
['張三'
,'李四'
,'王五'
,'陳六','貂蟬'
,'豬八戒'
]>>
> student.extend(
'張飛'
,'關羽')[
'張三'
,'李四'
,'王五'
,'陳六','貂蟬'
,'豬八戒','張飛'
,'關羽'
]
>>
> student =
['紅樓夢'
,'水滸傳'
]#插入元素
>>
> student.insert(1,
'三國演義'
)>>
> student
['紅樓夢'
,'三國演義'
,'水滸傳'
]
>>
> student =
['廣州'
,'深圳'
]#替換元素
>>
> student[0]
="揭陽"
>>
> student
['揭陽'
,'深圳'
]
>>
> student =
['廣東'
,'江蘇'
,'福建'
]#remove刪除
>>
> student.remove(
'江蘇'
)>>
>> student
['廣東'
,'福建'
]>>
> student =
['廣東'
,'江蘇'
,'福建'
]#pop取走 方法
>>
> student.pop(1)
>>
>>
> student
['廣東'
,'福建'
]
>>
> a =[1
,2,3
,4]#反轉
>>
> a.reverse(
)>>
> a[4
,3,2
,1]
>>
> a =[1
,2,3
,4]#copy複製
>>
> b = a.copy(
)>>
> b
>[1
,2,3
,4]
>>
> a =[1
,2,3
,4]#清除
>>
> a.clear(
)>>
> a
>>
> student =
['麥可·喬丹'
,'科比·布萊恩特'
,'雷阿倫'
]#替換元素
>>
> student.index(
'科比·布萊恩特'
)>>
> student
1
列表生成式和生成器
我們還可以使用列表的生成式語法來建立列表,**如下所示。
f = [x for x in range(1, 10)]
print(f)
f = [x + y for x in 'abcde' for y in '1234567']
print(f)
# 用列表的生成表示式語法建立列表容器
# 用這種語法建立列表之後元素已經準備就緒所以需要耗費較多的記憶體空間
f = [x ** 2 for x in range(1, 1000)]
print(sys.getsizeof(f)) # 檢視物件占用記憶體的位元組數
print(f)
# 請注意下面的**建立的不是乙個列表而是乙個生成器物件
# 通過生成器可以獲取到資料但它不占用額外的空間儲存資料
# 每次需要資料的時候就通過內部的運算得到資料(需要花費額外的時間)
f = (x ** 2 for x in range(1, 1000))
print(sys.getsizeof(f)) # 相比生成式生成器不占用儲存資料的空間
print(f)
for val in f:
print(val)
後期學習繼續補充。
分享到這
python基礎型別 列表
列表 列表是python中的基礎資料型別之一,其他語言中也有類似於列表的資料型別,比如js中叫陣列,他是以括起來,每個元素以逗號隔開,而且他裡面可以存放各種資料型別比如 li alex 123,ture,1,2,3,wusir 1,2,3,小明 列表相比於字串,不僅可以儲存不同的資料型別,而且可以儲...
python列表型別如何 python列表型別
列表型別 一 列表 list 如果現在有乙個需求,我們需要儲存乙個人的愛好,用前面說的資料型別儲存,毫無疑問只能用字串儲存,並且乙個人的愛好可能是很多個,那麼我們可以用空格將讓他們分開。hobbies read run girl print hobbies 輸出 read run girl 我們一直...
python基礎語法(一)容器型別 列表
列表的操作 s 1,2,3,4,5,6,7,8,9 print s 1,2,3,4,5,6,7,8,9,10 s 1,2,3,4,5,6,7,8,9 s.insert 2,10 指定序號插入元素 print s 1,2,10,3,4,5,6,7,8,9 s 1,2,3,4,5 t 6,7,8,9 s...