Python入門實(shí)踐10 ——列表(List)
一、目標(biāo)
1、列表類似c語(yǔ)言的數(shù)組,不過(guò)其元素可以是任意類型
2、掌握列表的9大操作
3、學(xué)會(huì)使用列表的函數(shù)和方法
二、要點(diǎn)
1、列表
列表可以看成是一串有序的數(shù)據(jù)集合,它可以存放任何類型的數(shù)據(jù),甚至是不同類型的數(shù)據(jù)。你可以將它想象成一列隊(duì)伍,其中有各個(gè)國(guó)家的人,甚至還要小貓和小狗。
將數(shù)據(jù)放入一對(duì)方括號(hào) [ ] 內(nèi)來(lái)表示列表,數(shù)據(jù)之間用逗號(hào)相隔。
例如,以下是某個(gè)四口之家的身高數(shù)據(jù)列表:
family = [1.73, 1.68, 1.71, 1.89]
- 列表是一種容器,可以容納各種數(shù)據(jù)類型。可類比c語(yǔ)言的打了激素的數(shù)組。
- 列表是一種序列,每個(gè)元素都分配一個(gè)數(shù)字 ,它的位置或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推。
- 列表可以改變存儲(chǔ)的各個(gè)元素。
2、列表定義
1)、直接定義和賦值
把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái)即可。
如:family = ["爸爸", "媽媽",["兒子","兒媳","孫子"]];
2)、利用range()快速生成列表。
3、訪問列表中的值
使用下標(biāo)索引來(lái)訪問列表中的值,列表的第一個(gè)元素索引是0,第二個(gè)索引是1,依此類推。
列表[整數(shù)表達(dá)式];
如:family[0]
4、列表的運(yùn)算
運(yùn)算 | 說(shuō)明 | 舉例 |
---|---|---|
+ | 拼接列表 | ist1 + list2 |
+= | 原列表與右側(cè)列表拼接后變量綁定新列表 | list1 += list2 |
* | 生成重復(fù)的列表 | list1 *3 |
*= | 用原列表生成重復(fù)的列表,用變量綁定新生成的列表 | list1 *= 2 |
in / not in | 判斷一個(gè)值是否存在列表中,如果存在則返回True,否則返回False | 'lsk' in list1 |
列表[整數(shù)表達(dá)式] | 通過(guò)索引賦值來(lái)改變列表元素 | list1 [2] |
5、列表切片
在Python中處理列表的部分元素,稱之為切片。創(chuàng)建切片,可指定要使用的第一個(gè)元素和最后一個(gè)元素的索引。
格式:
列表[開始索引:結(jié)束索引];
如:
list1=[1,2,3];
list2=list1[1:2];
5、列表操作
列表 的十種操作方法:
1)、添加
用append()在list的末尾添加一個(gè)元素。
調(diào)用格式:
列表.append(插入元素);
如:
list1=[1,2,3];
list1.append(4);
2)、插入
用insert()在某位插入元素。
調(diào)用格式:
列表.insert(插入位置,插入元素);
其中插入位置是從0開始計(jì),插入元素的序號(hào)。
如:
list2=[1,2,3];
list2.insert(2,8);
print(list2);
3)、彈出
用pop()彈出的是list的最后一個(gè)元素。
調(diào)用格式:
列表.pop(彈出元素的位置序號(hào),默認(rèn)-1,最后一個(gè));
如:
list3=[1,2,3];
list3.pop(1);
print(list3);
4)、刪除
用remove()可刪除list中的任一元素
調(diào)用格式:
列表.remove(列表中元素的值);
如:
list4=[1,2,3];
list4.remove(3);
print(list4);
5)、延長(zhǎng)
extend()可以延長(zhǎng)list
調(diào)用格式:
列表.extend(列表);
如:
list5=[1,2,3,4,5];
list5.extend([6,7,8]);
6)、查找
列表的查找主要有:in、not in、count、index,find 前兩種方法是保留字,后兩種方式是列表的方法。
方法 | 作用 |
---|---|
元素 in list | 判斷值是否在列表中 |
元素 not in list | 判斷值是否不再列表中 |
List.count(元素) | 統(tǒng)計(jì)指定值在列表中出現(xiàn)的次數(shù) |
List. index (元素) | 查看指定值在列表中出現(xiàn)的次數(shù) |
List.find(元素) string類型 | 如果找到則返回第一個(gè)匹配的位置,如果沒找到則返回-1,而如果通過(guò)index方法去查找的話,沒找到的話會(huì)報(bào)錯(cuò) |
max(list) | 查找列表最大 |
min(list) | 查找列表最小 |
7)、排序
調(diào)用格式:
list.sort(cmp=None, key=None, reverse=False)
參數(shù)
-
cmp -- 可選參數(shù), 如果指定了該參數(shù)會(huì)使用該參數(shù)的方法進(jìn)行排序。
-key -- 主要是用來(lái)進(jìn)行比較的元素,只有一個(gè)參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對(duì)象中,指定可迭代對(duì)象中的一個(gè)元素來(lái)進(jìn)行排序。 -
reverse -- 排序規(guī)則,reverse = True 降序, reverse = False 升序(默認(rèn))。
如:
list7 = [10, 20, 1, 45, 99];
list7.sort();
print(list7);
list7.sort(reverse=True);
print(list7);
8)、反轉(zhuǎn)
reverse() 函數(shù)用于反向列表中元素。
9)、遍歷
通過(guò)循環(huán)實(shí)現(xiàn)列表元素的遍歷。
6、列表的函數(shù)
序號(hào) | 函數(shù) | 說(shuō)明 |
---|---|---|
1 | cmp(list1, list2) | 比較兩個(gè)列表的元素 |
2 | len(list) | 列表元素個(gè)數(shù) |
3 | max(list) | 返回列表元素最大值 |
4 | min(list) | 返回列表元素最小值 |
5 | list(seq) | 將元組轉(zhuǎn)換為列表 |
7、列表的方法
序號(hào) | 方法 | 說(shuō)明 |
---|---|---|
1 | list.append(obj) | 在列表末尾添加新的對(duì)象 |
2 | list.count(obj) | 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) |
3 | list.extend(seq) | 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表) |
4 | list.index(obj) | 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 |
5 | list.insert(index, obj) | 將對(duì)象插入列表 |
6 | list.pop([index=-1]) | 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值 |
7 | list.remove(obj) | 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng) |
8 | list.reverse() | 反向列表中元素 |
9 | list.sort(cmp=None, key=None, reverse=False) | 對(duì)原列表進(jìn)行排序 |
三、步驟
1、新建新建ex10.py文件。
2、錄入實(shí)例中代碼。
3、運(yùn)行。
四、實(shí)例(Python 3.0+)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'jungle'
__mtime__ = '2019-08-26'
"""
print("-----------list定義-----------------------");
# 方式1:直接定義和賦值
# 列表可以嵌套,即列表里面的元素可以是列表,此外列表中的元素?cái)?shù)據(jù)類型可以不一致
family = ["爸爸", "媽媽",["兒子","兒媳","孫子"]]
print(family) ;
print(type(family));
# 方式2:利用range快速生成列表
# range(start, stop, step) 以步長(zhǎng)為step生成范圍為[start, stop)的列表
# 在Python2里用range()可以直接生成列表,但在Python3中為了防止生成的列表沒有被使用而造成內(nèi)存的浪費(fèi),沒有直接生成列表
list1 = range(1, 10000, 2);
print(list1) ;
print("---------list元素-------------------------");
print(family[0],family[2][2],sep="\n");
print("-------list運(yùn)算---------------------------");
list1=[1,2,3,4,5];
list2=[5,6,7,8,9,10];
print(list1+list2);
print((list1*3));
print("-------list切片--------------------------");
list1=[1,2,3,4,5,6];
list2=list1[0:2];
print("切片:{},{},{}".format(list2,list1[4:],list1[:-2]));
print("---------list操作-------------------------");
#add
print(help(list.append));
list1=[1,2,3];
list1.append(4);
print("append:",list1);
#inserd
print(help(list.insert));
list2=[1,2,3];
list2.insert(2,8);
print("insert:",list2);
#pop
print(help(list.pop));
list3=[1,2,3,4,5];
list3.pop();
list3.pop(1);
print("pop:",list3);
#remove
print(help(list.remove));
list4=[1,2,3,4,5];
list4.remove(5);
list4.remove(list1[2]);
print("remove:",list4);
#extend
print(help(list.extend));
list5=[1,2,3,4,5];
exlt=[7,8]
list5.extend([6,7,8]);
list5.extend(exlt);
print("extend:",list5);
print("max={},min= {}".format(max(list1),min(list1)));
#查找
list6 = [10, 20, 1, 45, 99];
print("max:", max(list6));
print("index:",list6.index(99));
#sort
list7 = [10, 20, 1, 45, 99];
list7.sort();
print("sort:",list7);
list7.sort(reverse=True);
print("sort:",list7);
#reverse
list8 = [10, 20, 1, 45, 99];
print(list8);
list8.reverse();
print("reverse:",list8);
print("---------list函數(shù)和方法-------------------------");
print(dir(list));
五、運(yùn)行輸出:
-----------list定義-----------------------
['爸爸', '媽媽', ['兒子', '兒媳', '孫子']]
range(1, 10000, 2)
---------list元素-------------------------
爸爸
孫子
-------list運(yùn)算---------------------------
[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
-------list切片--------------------------
切片:[1, 2],[5, 6],[1, 2, 3, 4]
---------list操作-------------------------
Help on method_descriptor:
append(self, object, /)
Append object to the end of the list.
None
append: [1, 2, 3, 4]
Help on method_descriptor:
insert(self, index, object, /)
Insert object before index.
None
insert: [1, 2, 8, 3]
Help on method_descriptor:
pop(self, index=-1, /)
Remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
None
pop: [1, 3, 4]
Help on method_descriptor:
remove(self, value, /)
Remove first occurrence of value.
Raises ValueError if the value is not present.
None
remove: [1, 2, 4]
Help on method_descriptor:
extend(self, iterable, /)
Extend list by appending elements from the iterable.
None
extend: [1, 2, 3, 4, 5, 6, 7, 8, 7, 8]
max=4,min= 1
max: 99
index: 4
sort: [1, 10, 20, 45, 99]
sort: [99, 45, 20, 10, 1]
[10, 20, 1, 45, 99]
reverse: [99, 45, 1, 20, 10]
---------list函數(shù)和方法-------------------------
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
六、代碼說(shuō)明
list1 = range(1, 10000, 2);
range(start, stop, step) 以步長(zhǎng)為step生成范圍為[start, stop)的列表,在Python2里用range()可以直接生成列表,但在Python3中為了防止生成的列表沒有被使用而造成內(nèi)存的浪費(fèi),沒有直接生成列表.
print(dir(list));
dir(list):,返回list的屬性、方法列表。
注:
1、撰寫內(nèi)容來(lái)源于個(gè)人收集的文獻(xiàn),屬學(xué)術(shù)探究范疇。
2、版權(quán)屬于時(shí)進(jìn)軍個(gè)人,轉(zhuǎn)載需注明。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
