前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python - 基础数据类型 list 列表

Python - 基础数据类型 list 列表

作者头像
小菠萝测试笔记
发布2021-07-29 13:12:36
6400
发布2021-07-29 13:12:36
举报

什么是列表

  • 列表是一个有序的序列
  • 列表中所有的元素放在 中间,并用逗号分开
  • 一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同

特征

占用空间小,浪费内存空间少

声明列表变量

  • 列表元素可以是任意数据类型,也可以混搭
  • 可以数组嵌套数组,俗称二元数组
代码语言:javascript
复制
lis = [1, 2, 3, 1.11]
lis = ["a", "b", "c"]
lis = [True, False]
lis = [{"a": 123}, {"b": 456}]
lis = [[1], [2]]
lis = [(1), (2)]
lis = [1, 1.2, "2", True, {}, [], ()]

列表常见运算操作

运算符 +

代码语言:javascript
复制
# + 运算
a = [1] + [2, 3, ] + [4, 5]
print(a)

b = [1, 2] + ["3", "4"]
print(b)


# 输出结果
[1, 2, 3, 4, 5]
[1, 2, '3', '4']
  • 变量 b 是赋值两个不同数据类型的列表,虽然不会报错,但是 pycharm 会有 warning
  • Expected type 'Listint' (matched generic type 'List_T'), got 'Liststr' instead
  • 本来应该是 Listint,但后面用了 Liststr 代替,不过我也没 get 到这个 warn 想干嘛哈哈

运算符 *

代码语言:javascript
复制
# * 运算
a = [1, 2] * 3
print(a)


# 输出结果
[1, 2, 1, 2, 1, 2]

索引(下标)取值

代码语言:javascript
复制
# 索引
a = [1, 2, True, {"name": "小菠萝"}, ["how", "hi"]]

print(a[0])
print(a[2])
print(a[-1])
print(a[-2])


# 输出结果
1
True
['how', 'hi']
{'name': '小菠萝'}

切片取值

  • 和字符串一样,列表也可以切片
  • 使用语法:列表start : end : step,获取列表 列表 中在 [start, end) 范围的子字符串
  • 注意范围 [start, end) 包含 start,不包含 end
  • step 是步长,设为 n,则每隔 n 个元素获取一次
代码语言:javascript
复制
# 切片
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[:])  # 取全部
print(a[0:])  # 取第一个元素到最后一个元素
print(a[::-1])  # 逆序取全部元素
print(a[2:5])  # 取第三个元素到第五个元素


# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[3, 4, 5]

切片赋值

注意:赋值的值也必须是列表,否则会报错 TypeError: can only assign an iterable

代码语言:javascript
复制
# 切片赋值
a = ["1", "2", "3"]
print(a)
a[:] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]  # 切片获取所有元素,并重新赋值
print(a)

a[2:4] = [33, 44]
print(a)

a[2:4] = []  # 相当于去掉第 3、4 个元素
print(a)

a[:] = []  # 将 a 赋值为空列表
print(a)


# 输出结果
['1', '2', '3']
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[1, 2, 33, 44, 5, 6, 7, 8, 9, 0]
[1, 2, 5, 6, 7, 8, 9, 0]
[]

关键字 in

  • 通过关键字 in 检查列表中是否包含指定元素,返回 bool 值
  • not in 则是取反
代码语言:javascript
复制
# in、not in
a = [1, 2, True, {"name": "小菠萝"}, ["how", "hi"]]

print(1 in a)
print(3 in a)
print({"name": "小菠萝"} in a)
print(False not in a)


# 输出结果
True
False
True
True

列表常见会用上的内置函数

len()

获取列表长度

代码语言:javascript
复制
# 获取列表长度 
print(len([1, 2, 3, 4])) 

# 输出结果 
4

max()

获取列表值最大的元素

最简单的栗子
代码语言:javascript
复制
# max
a = [1, 2, 3]
print(max(a))

# 输出解雇
3
不同数据类型的栗子
代码语言:javascript
复制
# 其他栗子
a = [1, 2, True, 3]
print(max(a))

a = ["a", "b", "c"]
print(max(a))

a = [[1, 2], [3, 4], [3, 5]]
print(max(a))


# 输出结果
3
c
[3, 5]
同一个列表里包含不同数据类型的话呢?
代码语言:javascript
复制
a = ["a", "b", 1]
print(max(a))


# 输出结果
    print(max(a))
TypeError: '>' not supported between instances of 'int' and 'str'
  • 很明显,直接报错了,提示 > 运算符不支持在 int 、str 两种数据类型做运用
  • 所以,使用 max、min 函数时,列表的数据记得是同一个数据类型哦
传多个参数的栗子

上面的栗子都是给 max 函数传递了单个参数

代码语言:javascript
复制
print(max(1, 2, 3))
print(max([1, 2], [1, 2, 3]))


# 输出结果
3
[1, 2, 3]

会返回最大的那一个参数值

查看 max() 源码
代码语言:javascript
复制
def max(*args, key=None): # known special case of max
    """
    max(iterable, *[, default=obj, key=func]) -> value
    max(arg1, arg2, *args, *[, key=func]) -> value
    
    With a single iterable argument, return its biggest item. The
    default keyword-only argument specifies an object to return if
    the provided iterable is empty.
    With two or more arguments, return the largest argument.
    """
    pass

两种传值方式

max(iterable, *, default=obj, key=func)

倘若只传一个列表,那么可以指定 default 参数值,当传的列表为空的时候,返回 default 值

max(arg1, arg2, *args, *, key=func)

可以传多个参数,返回最大的参数值

min()
  • 获取列表值最小的元素
  • 跟 max() 就是反过来了,不再举栗子咯

list 常见方法

https://cloud.tencent.com/developer/article/1854276

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是列表
    • 特征
    • 声明列表变量
    • 列表常见运算操作
      • 运算符 +
        • 运算符 *
          • 索引(下标)取值
            • 切片取值
              • 切片赋值
                • 关键字 in
                • 列表常见会用上的内置函数
                  • len()
                    • max()
                      • 最简单的栗子
                      • 不同数据类型的栗子
                      • 同一个列表里包含不同数据类型的话呢?
                      • 传多个参数的栗子
                      • 查看 max() 源码
                      • min()
                  • list 常见方法
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档