Python入门实践10 | 列表(List)

系统 1565 0

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、版权属于时进军个人,转载需注明。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论