1. 定义

1.1 简介

  • 专门用于存储 一串数据,存储的数据成为元素

1.2 格式

list 用[]定义,元素之间使用,分割

1.3 特点

元素可以为不同类型

  • 索引(index)就是元素在list中的位置编号

list的index从0开始

python list 指针 移动 python list位置_python list 指针 移动

"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]

使用格式:
    列表变量[位置]
    位置:也叫下标、索引
"""

# 列表定义
name_list = ['mike', 'yoyo', 'rock', 'lily']
#              0       1        2       3
#             -4       -3      -2       -1

# 最后一个元素取出来
print(name_list[3])
print(name_list[-1])

# 访问列表元素,不要超出范围,不要越界
# IndexError: list index out of range
# print(name_list[4])
  • 注意:从list中取值时,如果超出索引范围,程序会报错

1.4 地位

  • list是Python中使用最频繁的数据类型

2. 分类

  • 里边元素时int型,为整型列表
  • 里边元素为float型,为浮点型列表
  • 里边元素为complex型,为复数型列表
  • 里边元素时两种或三种都有的,为复合兴列表

3. 操作

3.1 基本运算

  • 增加
  • 格式:list.append(value)
  • 说明:在list末尾追加数据
  • 删除
  • 格式1:list.remove(value)
  • 说明:删除第一个出现的指定数据
  • 格式2:list.pop(index)
  • 说明:返回对应的值
  • 修改
  • 格式:list[index]=value
  • 说明:修改指定index的数据,index不存在会报错
  • 查询
  • 查询元素是否存在:
  • list[index]
  • if value in list:

3.2 函数运算

  • 查询list的长度:len(list)
  • 查询list最大元素:max(list)
  • 查询list最小元素:min(list)
  • 逆置list:list.reverse()
  • 清空list:list.clear()

3.3 常用操作

  • 排序
    • 格式:list.sort()
    • 说明:升序排序

3.4 range

1. 定义

  • range()方法/函数可创建一个整数列表对象,一般用于fro循环中

2. 使用

range(开始位置,结束位置,步长)

  • 和切片用法差不多
# 1. 打印:0、1、2、3、4
# for i in range(5):  # [0, 5)
for i in range(0, 5):  # [0, 5)
    print(i)

# 2. 1~100的累加
# 2.1 定义辅助变量
_sum = 0

# 2.2 for 控制循环范围
for i in range(1, 101):
    # 2.3 累加
    _sum += i

# 2.4 在循环外面打印累加结果
print(_sum)

# 3. 验证步长,打印:0、2、4
for i in range(0, 5, 2):  # [0, 5)
    print(i)

3.5 列表推导式

1. 定义

  • 快速生成列表的表达形式,通过for添加元素的简介写法
  • 格式:[计算公式 for 循环 if 判断]
  • 特点
    • 每循环一次,将计算公式的结果添加到列表中
    • 计算公式可以使用遍历出的数据
    • for遍历出的数据必须满足if判断才会使用计算机公式生成元素
# 普通方法:遍历0~4范围的元素,这些元素添加到列表中
# 1. 空列表
new_list = []

# 2. range(5)遍历取数
for i in range(5):
    # 2.1 取出来的元素追加到列表
    new_list.append(i)

# 3. 循环外面,打印结果
print(new_list)

print('='*30)

# 通过列表推导式,实现上面的效果 [计算公式 for循环体]
# 1. for i in range(5), 取出0,放在i变量中,i追加到列表
# 2. 循环下一步,取出2,放在i变量中,i追加到列表
# 重复,直到退出循环
new_list2 = [i for i in range(5)]
print(new_list2)

print('='*30)


# 0~10之间数,偶数才添加到列表
# 普通方法实现
# 1. 空列表
new_list = []

# 2. range(11)遍历取数
for i in range(11):
    # 2.1 取出来的元素是偶数的话,追加到列表
    # 2.2 i % 2 == 0, i 对 2求余,结果为0,就是偶数
    if i % 2 == 0:
        new_list.append(i)

# 3. 循环外面,打印结果
print(new_list)

print('='*30)

# 列表推导式实现
# [i for i in range(11) if i % 2 == 0]
# 1. for i in range(11)取第一个元素
# 2. if i % 2 == 0
# 3. 上面满足条件的i, 条件到列表
new_list2 = [i for i in range(11) if i % 2 == 0]
print(new_list2)

运行结果

[0, 1, 2, 3, 4]
==============================
[0, 1, 2, 3, 4]
==============================
[0, 2, 4, 6, 8, 10]
==============================
[0, 2, 4, 6, 8, 10]
  • 能够使用列表推导使创建1-100之间元素的列表
# 通过列表推导式,实现上面的效果 [计算公式 for循环体]
# 1. for i in range(1, 101), 取出1,放在i变量中,i追加到列表
# 2. 循环下一步,取出2,放在i变量中,i追加到列表
# 重复,直到退出循环
new_list = [i for i in range(1, 101)]
print(new_list)
3. 嵌套

3.1 定义

  • 一个list中的元素优势list,name这就是列表的嵌套
school_list = [['北京大学', '清华大学'], ['中山大学', '华南理工大学'], ['哈工大', '哈工程']]
#                  0                      1                         2

# 取出第 2 个元素,也就是索引为1的元素
print(school_list[1])  # ['中山大学', '华南理工大学']

# 先取出索引为1的元素,再继续索引为1的元素
# ['中山大学', '华南理工大学']
#   0            1
print(school_list[1][1])  # '华南理工大学'
4. 迭代

4.1 定义

迭代也叫遍历,遍历循环

  • 遍历就是 从头到尾 依次 从列表中取出每一个元素

4.2 操作

1. for遍历

  • Python中专门提供 for循环 实现遍历
  • python list 指针 移动 python list位置_编程语言_02


# 遍历,从头开始找,直到结束
name_list = ['mike', 'yoyo', 'rock', 'lily']

# 通过while实现遍历
# 1. 定义条件变量i = 0
i = 0

# 2. while i < 列表元素个数:
while i < len(name_list):
    # 3. 取出某个元素,打印
    name = name_list[i]
    print(name)

    # 4. 条件变量的修改
    i += 1

print('==========华丽分割线=============')

# for遍历循环,和上面的while效果等价
# 从头到尾 依次从 列表 中取出 每一个元素
for name in name_list:
    print(name)

2. for index in range(len(list))

python list 指针 移动 python list位置_编程语言_03

2. if…in 和 for…in 的区别

  • if…in:判断某个元素是否在列表中,如果在,if的条件为True
  • for…in:从头到尾 依次从列表 中取出每一个元素
name_list = ['mike', 'yoyo', 'rock', 'lily']

# if…in:判断某个元素是否在列表中,如果在,if的条件为True
name = 'yoyo'

# name的内容'yoyo'是否在name_list列表中,如果在,name in name_list结果为True
if name in name_list:
    print('%s 在列表中' % name)

print('==========华丽分割线=============')

# for…in:从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
    print(name)

运行结果:

yoyo 在列表中
==========华丽分割线=============
mike
yoyo
rock
lily

4.3 for…else的使用

  • for循环里面没有遇到break语句,for执行完后,则会执行else的分支
name_list = ['mike', 'yoyo', 'rock', 'lily']

for name in name_list:
    print(name)

    # 测试有break,和没有break的else执行情况
    # if name == 'yoyo':
    #     break
else:
    print('for循环里面没有遇到break语句,for执行完后,则会执行else的分支')

运行结果:

mike
yoyo
rock
lily
for循环里面没有遇到break语句,for执行完后,则会执行else的分支
5. 总结

5.1 定义列表的基本格式

"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]

使用格式:
    列表变量[位置]
    位置:也叫下标、索引
"""

name_list = ['mike', 'yoyo', 'rock', 'lily']
#              0       1        2       3
#             -4       -3      -2       -1
print(name_list[3])

5.2 常用操作

  • 增加:list.append(value)
  • 删除:list.remove(value)/list.pop(index)
  • 修改:list[index]=value
  • 查询
    • list[index]
    • len(list)
    • if value in list:

5.3 for循环遍历列表

name_list = ['mike', 'yoyo', 'rock', 'lily']
# 从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
    print(name)