列表

作者: qjh_py | 来源:发表于2020-04-23 15:08 被阅读0次

目录

  1. 序列(sequence)
  2. 列表(list)
  3. 列表的基本操作
  4. 切片
  5. 列表的内置方法
  6. 遍历列表
  7. 列表推导式( List comprehensions )

1. 序列(sequence)

1.1 基本概念

  • 序列:Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引
  • 数据结构:计算机中数据存储的方式

1.2 序列的分类

  • 可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
  • 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

2. 列表(list)

列表:是Python中最常用的一种数据结构,它是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何类型的,个数是无限制的,但使用时一个列表中的元素类型是相同的。下面的列表有4个元素,元素类型分别是字符串、整数、浮点数和列表:

list_1 = ['python’, 1, 3.14, ['x','2']]

总结:

  • 列表是Python中的一个对象
    -标志是 [ ]
  • 列表的作用
    • 可以保存多个有序的数据
    • 用来存储对象的对象

2.1 列表的创建

list_2 = list() # 使用list()函数创建一个空列表
list_3 = [] # 直接创建一个空列表
list_4 = [2333, 'qjh', [521, 1314]] # 可嵌套创建列表

2.2. 访问列表内的元素

  • 列表就像一个标号排队的队伍,从头到尾每个元素都有一个递增的号码,这个号码就是对应元素的“索引”(index)。与我们生活中不同的是,列表的第一元素的索引是0。
  • 要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的索引超过范围,会抛出异常。
>>> list_4 = [2333, 'qjh', [521, 1314]]
>>> list_4[0]
2333
# 列表可以嵌套列表,形成多维列表,形如矩阵。
#其元素的引用方法是list[i][j][k].....
>>> list_4[2][1] 
1314
>>> list_4[3]
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    list_4[3]
IndexError: list index out of range
  • 其实还可以倒着索引,从-1开始:
>>> list_4 = [2333, 'qjh', [521, 1314]]
>>> list_4[-1]
[521, 1314]
  • 正负索引的对应关系如下所示:
列表: ['1', '2', '3', '4']
        |    |    |    | 
正索引:  0    1    2    3    
负索引: -4   -3   -2   -1

2.3 列表元素的赋值

  • 和一般变量赋值类似,及其简单。
>>> list_4 = [2333, 'qjh', [521, 1314]]
>>> list_4[1] = 'lxy'
>>> list_4
[2333, 'lxy', [521, 1314]]

3. 列表的基本操作

4. 切片

  • 切片:对序列进行截取,选取序列中的某一段。
  • 语法: list[start:end:step]
  • 解释:以冒号分割索引,
    start--起点索引
    end--结束点索引
    step--步长,表示每隔多少距离取一个元素
    省略start表示以0开始
    省略end表示到列表的结尾
  • 注意:区间是左闭右开的!
  • 切片不会修改原有的列表,可以将结果保存到新的变量。
  • 其实不止列表有切片,字符串也可以。
str1 = '<a href="http://www.fishc.com/dvd" target="_blank"> 鱼 C 资源打包 </a>'
print(str1[16:29])
print(str1[-49:-36])
print(str1[16:-36])

5. 列表的内置方法

列表的内置方法
  • extend()、pop()代码示范
# extend()、pop()代码示范
a = [1,2,3,70]
a.extend([[4,5,89]])
print(a)
a[0],a[1] = a[1],a[0]
print(a)
a.pop(1)
print(a)
a += [6]
print(a)
#[1, 2, 3, 70, [4, 5, 89]]
#[2, 1, 3, 70, [4, 5, 89]]
#[2, 3, 70, [4, 5, 89]]
#[2, 3, 70, [4, 5, 89], 6]
  • 列表不同种类的复制
# 列表不同种类的复制
a = [0]
b = a 
c = a[:]
d = a.copy()
a += [1]
b += [2]
c += [3]
d += [4]
print(a,'\n',b,'\n',c,'\n',d)
#[0, 1, 2] 
# [0, 1, 2] 
# [0, 3] 
# [0, 4]

6. 遍历列表

6.1 for循环

  • 通过for循环来遍历列表
    语法
for 变量 in 序列(遍历的规则):
    代码块
  • 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素

6.2 range(start, stop[, step])函数

参数说明

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

7. 列表推导式( List comprehensions )

列表推导式( List comprehensions )也叫列表解析,可以用来动态的创建列表
语法如:[有关 A 的表达式 for A in B]

>>>[ i*i for i in range(10) ] 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  • 举一个栗子来说明列表推导式的好处。
    创建一个列表,格式为[(偶数,奇数),...],奇偶数的范围是0~10.
# 列表推导式
list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
print(list1)
# 一般写法
list2 = [] 
for x in range(10): 
    for y in range(10): 
        if x%2 == 0: 
            if y%2 != 0:
                list2.append((x, y)) 
print(list2)
  • 明显可以看出用列表推导式的方法代码更简洁!

相关文章

  • Markdown 系列(三) 列表

    无序列表 由圆点组成的列表 列表1 列表2 列表3 列表1 列表2 列表3 列表1 列表2 列表3 +-*这三种符...

  • markdown常用的语法

    列表 有序列表: 列表项 1 列表项 2 无序列表: 列表项 1 列表项 2 列表项 3 列表项 4 列表项缩进两...

  • markdown常用语法

    标题 列表 无序列表- 列表1 - 列表1.1 -列表1.2- 列表2 有序列表1. 列表1 1. 列表1....

  • html阶段第二节第一天

    高级标签 列表标签 无序列表 列表一 列表二 ...... 有序列表 列表一 列表二 ...... 定义列表dl...

  • markdown测试

    段落 三级标题 四级标题 五级标题 列表 无序列表 列表1 列表2 列表3 列表1 列表2 列表3 有序列表 列表...

  • 学习小组Day1笔记-Herobrine

    Day1-Herobrine 列表 无序列表 无序列表 无序列表 无序列表 有序列表 有序列表 有序列表 有序列表...

  • H5学习从0到1-H5列表(8)

    列表的基本语法 ol:有序列表 ul:无序列表 li:列表项 dl:列表 dt:列表项 dd:列表描述 常用列表 ...

  • 第一篇简书

    MarkDown首次使用 无序列表 列表1 列表2 列表3 有序列表 有序列表1 有序列表2 有序列表3 有序列表...

  • 标题

    列表1 列表2 子列表1 子列表2 子列表3子子列表1子子列表2子子子列表1子子子列表2

  • markdown test

    header2 test> test 列表* 列表2 * 列表2.1 列表列表2列表2.1

网友评论

      本文标题:列表

      本文链接:https://www.haomeiwen.com/subject/grzoihtx.html