Python入门实践10 ——列表(List)
列表(List)
一、目标
1、列表类似c语言的数组,不过其元素可以是任意类型
2、掌握列表的9大操作
3、学会使用列表的函数和方法
二、要点
1、列表
列表可以看成是一串有序的数据集合,它可以存放任何类型的数据,甚至是不同类型的数据。你可以将它想象成一列队伍,其中有各个国家的人,甚至还要小猫和小狗。
将数据放入一对方括号 [ ] 内来表示列表,数据之间用逗号相隔。
例如,以下是某个四口之家的身高数据列表:
family = [1.73, 1.68, 1.71, 1.89]
列表是一种容器,可以容纳各种数据类型。可类比c语言的打了激素的数组。
列表是一种序列,每个元素都分配一个数字 ,它的位置或索引,第一个索引是0,第二个索引是1,依此类推。
列表可以改变存储的各个元素。
2、列表定义
1)、直接定义和赋值
把逗号分隔的不同的数据项使用方括号括起来即可。
如:family = ["爸爸", "妈妈",["儿子","儿媳","孙子"]];
2)、利用range()快速生成列表。
3、访问列表中的值
使用下标索引来访问列表中的值,列表的第一个元素索引是0,第二个索引是1,依此类推。
列表[整数表达式];
如:family[0]
4、列表的运算
运算
说明
举例
+
拼接列表
ist1 + list2
+=
原列表与右侧列表拼接后变量绑定新列表
list1 += list2
*
生成重复的列表
list1 *3
*=
用原列表生成重复的列表,用变量绑定新生成的列表
list1 *= 2
in / not in
判断一个值是否存在列表中,如果存在则返回True,否则返回False
'lsk' in list1
列表[整数表达式]
通过索引赋值来改变列表元素
list1 [2]
5、列表切片
在Python中处理列表的部分元素,称之为切片。创建切片,可指定要使用的第一个元素和最后一个元素的索引。
格式:
列表[开始索引:结束索引];
如:
list1=[1,2,3];
list2=list1[1:2];
5、列表操作
列表 的十种操作方法:
1)、添加
用append()在list的末尾添加一个元素。
调用格式:
列表.append(插入元素);
如:
list1=[1,2,3];
list1.append(4);
2)、插入
用insert()在某位插入元素。
调用格式:
列表.insert(插入位置,插入元素);
其中插入位置是从0开始计,插入元素的序号。
如:
list2=[1,2,3];
list2.insert(2,8);
print(list2);
3)、弹出
用pop()弹出的是list的最后一个元素。
调用格式:
列表.pop(弹出元素的位置序号,默认-1,最后一个);
如:
list3=[1,2,3];
list3.pop(1);
print(list3);
4)、删除
用remove()可删除list中的任一元素
调用格式:
列表.remove(列表中元素的值);
如:
list4=[1,2,3];
list4.remove(3);
print(list4);
5)、延长
extend()可以延长list
调用格式:
列表.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(元素)
统计指定值在列表中出现的次数
List. index (元素)
查看指定值在列表中出现的次数
List.find(元素) string类型
如果找到则返回第一个匹配的位置,如果没找到则返回-1,而如果通过index方法去查找的话,没找到的话会报错
max(list)
查找列表最大
min(list)
查找列表最小
7)、排序
调用格式:
list.sort(cmp=None, key=None, reverse=False)
参数
cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
-key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
如:
list7 = [10, 20, 1, 45, 99];
list7.sort();
print(list7);
list7.sort(reverse=True);
print(list7);
8)、反转
reverse() 函数用于反向列表中元素。
9)、遍历
通过循环实现列表元素的遍历。
6、列表的函数
序号
函数
说明
1
cmp(list1, list2)
比较两个列表的元素
2
len(list)
列表元素个数
3
max(list)
返回列表元素最大值
4
min(list)
返回列表元素最小值
5
list(seq)
将元组转换为列表
7、列表的方法
序号
方法
说明
1
list.append(obj)
在列表末尾添加新的对象
2
list.count(obj)
统计某个元素在列表中出现的次数
3
list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4
list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5
list.insert(index, obj)
将对象插入列表
6
list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7
list.remove(obj)
移除列表中某个值的第一个匹配项
8
list.reverse()
反向列表中元素
9
list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序
列表(List)——思维导图
三、步骤
1、新建新建ex10.py文件。
2、录入实例中代码。
3、运行。
四、实例(Python 3.0+)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'jungle'
__mtime__ = '2019-08-26'
"""
print("-----------list定义-----------------------");
# 方式1:直接定义和赋值
# 列表可以嵌套,即列表里面的元素可以是列表,此外列表中的元素数据类型可以不一致
family = ["爸爸", "妈妈",["儿子","儿媳","孙子"]]
print(family) ;
print(type(family));
# 方式2:利用range快速生成列表
# range(start, stop, step) 以步长为step生成范围为[start, stop)的列表
# 在Python2里用range()可以直接生成列表,但在Python3中为了防止生成的列表没有被使用而造成内存的浪费,没有直接生成列表
list1 = range(1, 10000, 2);
print(list1) ;
print("---------list元素-------------------------");
print(family[0],family[2][2],sep="\n");
print("-------list运算---------------------------");
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函数和方法-------------------------");
print(dir(list));
五、运行输出:
-----------list定义-----------------------
['爸爸', '妈妈', ['儿子', '儿媳', '孙子']]
range(1, 10000, 2)
---------list元素-------------------------
爸爸
孙子
-------list运算---------------------------
[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函数和方法-------------------------
['__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']
六、代码说明
list1 = range(1, 10000, 2);
range(start, stop, step) 以步长为step生成范围为[start, stop)的列表,在Python2里用range()可以直接生成列表,但在Python3中为了防止生成的列表没有被使用而造成内存的浪费,没有直接生成列表.
print(dir(list));
dir(list):,返回list的属性、方法列表。
注:
1、撰写内容来源于个人收集的文献,属学术探究范畴。
2、版权属于时进军个人,转载需注明。