Python数据容器(上)——list(列表)

一、什么是数据容器

1、定义:一种可以存储多个元素的 Python 数据类型

2、Python 中有哪些数据类型: 

  list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)

二、数据容器:list(列表)

1、列表的定义

基本语法:

#字面量
[元素1,元素2,元素3,元素4,...]

#定义变量
变量名称 = [元素1,元素2,元素3,元素4,...]

#定义空列表
变量名称 = []
变量名称 = list ()

列表内的每一个数据,称之为元素

· 以 [ ] 作为标识

· 列表内每一个元素之间用逗号隔开

注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套

num_list = [[1,2,3],[4,5,6]]
print(num_list)

2、列表的下标索引

1)、列表的下标(索引)-正向

列表中的每一个元素,都有其位置下标索引,从前往后的 方向,从0开始,依次递增。

我们只需要按照下标索引,即可取得对应位置的元素。

#语法:列表(下标索引)

name_list = ['Tom','Lily','Rose']
print(name_list[0])  #结果:Tom
print(name_list[1])  #结果:Lily
print(name_list[2])  #结果:Rose

2)、列表的下标(索引)-反向

或者,可以反向索引,也就是从后往前:从-1开始,一次递减(-1,-2,-3......)

#语法:列表[标号]

name_list = ['Tom','Lily','Rose']
print(name_list[-1])  #结果:Rose
print(name_list[-2])  #结果:Lily
print(name_list[-3])  #结果:Tom

3)、取出嵌套列表的元素

#语法:列表[标号][标号]

num = [[1,2,3],[4,5,6]]
print(num[0][2])  #结果:3

注:要注意下标索引的取值范围,超出范围无法取出元素,并且会报错

3、列表的常用操作方法

列表的查询功能(方法)

函数是一个封装代码的单元,可以提供特定功能。

在 Python 中,如果将函数定义为 class (类)的成员,那么函数会称之为:方法。

class Student:
    
    def add(self,x,y):
        return x + y

方法和函数的功能一样,有传入参数,有返回值,只是方法的使用格式不同:

函数的使用: num = add (1, 2 )

方法的使用:student = Student ( )

                       num = student.add ( 1, 2 )

a.查找某元素的下标

  功能:查找指定元素在列表的下标,如果找不到报错 ValueError

  语法:列表.index(元素)

      index就是列表对象(变量)内置的方法(函数)

mylist = ["Python","Java","C"]
#查找某元素在列表内的下标索引
num = mylist.index("Java")
print(num)

b.列表的修改功能(方法)

· 修改特定位置(索引)的元素值

语法:列表 [下标] =  值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

mylist = ["Python","Java","C"]
#修改特定下标索引的值
mylist[2] = "C++"
print(mylist)

· 插入元素:

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

mylist = ["Python","Java","C"]
#插入元素
mylist.insert(1,"C++")
print(mylist )

· 追加元素方法1

语法:列表.append(元素),将指定元素,追加到列表的尾部

mylist = ["Python","Java","C"]
#追加元素
mylist .append("C++")
print(mylist )

· 追加元素方法2

语法:列表.extend(其他数据容器),将其他数据容器的内容取出,一次追加到列表尾部

#追加方法2
num1_list = [1,2,3]
num2_list = [4,5,6]
num1_list.extend(num2_list )
print(num1_list )

· 删除元素

语法1(指定下表删除):del 列表 [下标]

语法2(指定下表删除):列表.pop (下标)——可以得到返回值

#删除元素
del_list1 = [1,2,3,4,5]
del_list2 = [6,7,8,9,10]
del del_list1[0]
del_list2.pop(4)
print(del_list1)
print(del_list2 )

语法3(指定具体元素删除):列表.remove(元素)

    删除的是某元素在列表中第一个匹配项

#指定元素删除
del_list1 = [1,2,3,4,5]
del_list1.remove(3)
print(del_list1 )

· 清空列表内容

语法:列表.clear( )

#清空列表元素
clear_list1 = [1,2,3,4,5]
clear_list1.clear()
print(clear_list1 )

` 统计某元素在列表内的数量

语法:列表.count(元素)

count_list = [1,2,1,3,1,5]
num = count_list.count(1)
print(num)

· 统计列表中所有元素的个数

语法;len(列表)

count_list = [1,2,1,3,1,5]
sum = len(count_list )
print(sum)

4、列表的遍历——while 循环

既然数据容器可以存储多个元素,那么,就会有需求从容器内依次取出元素进行操作

将容器内的元素依次取出进行处理的行为,称之为:遍历,迭代

方法:

· 循环控制变量通过下标索引来控制,默认0

· 每一次循环将下标索引变量 + 1

· 循环条件:下标索引变量 < 列表的元素变量

# 列表的遍历——while循环
def list_while_func()
    while_list = ["python","java","C"]
    # 定义一个下标来标记列表的下标
    count = 0        #初始值为 0
    while count <= len(while_list ) :
        # 通过count变量取出对应下标的元素
        element = while_list [count]
        print(element )
        count += 1

5、列表的遍历——for循环

相比 while 循环,for循环更加适合对列表等数据容器进行遍历

语法:

for 临时变量 in 数据容器:
    对临时变量进行处理

表示,从容器内,一次取出元素并赋值到临时变量上。

每一次的循环中,我们可以对临时变量(元素)进行处理     。

#;列表的遍历——for循环
def for_list_func() :
    for_list = [1,2,3,4,5]
    for element in for_list :
        print(element)

for_list_func()

6、while 循环和 for 循环的对比

a.在循环控制上:

       · while循环可以自定循环条件,并自行控制

        ·for 循环不可以自定循环条件,只可以一个个从容器内取出数据

b.在无限循环上:

       · while 循环可以通过条件控制做到无限循环

       · for 循环理论上不可以,因为被遍历的容器容量不是无限的

c.在使用场景上:

       · while 循环适用于任何想要循环的场景

       · for 循环适用于,遍历数据容量的场景或简单的固定次数循环场景

你可能感兴趣的:(python,开发语言)