Python - 基础数据类型 list 列表

简介: Python - 基础数据类型 list 列表

什么是列表


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

 

特征

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

 

声明列表变量


  • 列表元素可以是任意数据类型,也可以混搭
  • 可以数组嵌套数组,俗称二元数组


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, {}, [], ()]


列表常见运算操作


运算符 +

# + 运算
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 'List[int]' (matched generic type 'List[_T]'), got 'List[str]' instead
  • 本来应该是 List[int],但后面用了 List[str] 代替,不过我也没 get 到这个 warn 想干嘛哈哈

 

运算符 *

# * 运算
a = [1, 2] * 3
print(a)
# 输出结果
[1, 2, 1, 2, 1, 2]


索引(下标)取值

# 索引
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 个元素获取一次
# 切片
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

# 切片赋值
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 则是取反
# 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()

获取列表长度

# 获取列表长度 
print(len([1, 2, 3, 4])) 
# 输出结果 
4


max()

获取列表值最大的元素

最简单的栗子

# max
a = [1, 2, 3]
print(max(a))
# 输出解雇
3


不同数据类型的栗子

# 其他栗子 
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]


同一个列表里包含不同数据类型的话呢?

a = ["a", "b", 1]
print(max(a))
# 输出结果
    print(max(a))
TypeError: '>' not supported between instances of 'int' and 'str'


  • 很明显,直接报错了,提示 > 运算符不支持在 int 、str 两种数据类型做运用
  • 所以,使用 max、min 函数时,列表的数据记得是同一个数据类型哦

 

传多个参数的栗子

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

print(max(1, 2, 3))
print(max([1, 2], [1, 2, 3]))
# 输出结果
3
[1, 2, 3]


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

 

查看 max() 源码

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://www.cnblogs.com/poloyy/p/15058981.html

相关文章
|
19天前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
56 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
|
2天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
21 10
|
10天前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
58 8
|
16天前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
23 6
|
16天前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
26 6
|
19天前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
22天前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
24天前
|
索引 Python
List(列表)
List(列表)。
31 4
|
25天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
1月前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
181 2