python list的所有基础知识

简介: python list的所有基础知识

Python 列表(List)是一种有序、可变的序列类型,用于存储多个元素。以下是关于列表的所有基础知识:

1. 列表的定义

列表使用方括号 [] 定义,元素之间用逗号分隔,元素类型可以不同:

# 空列表
empty_list = []

# 包含相同类型元素
numbers = [1, 2, 3, 4, 5]

# 包含不同类型元素
mixed = [1, "hello", 3.14, True, [1, 2, 3]]

2. 列表的特性

  • 有序性:元素有明确的顺序,可通过索引访问
  • 可变性:可以修改、添加、删除元素
  • 可重复性:允许包含重复元素
  • 动态性:列表长度会根据元素增减自动调整

3. 列表的索引与切片

  • 索引:从 0 开始,支持负索引(从末尾计数)

    fruits = ["apple", "banana", "cherry", "date"]
    print(fruits[0])   # "apple"(第一个元素)
    print(fruits[-1])  # "date"(最后一个元素)
    print(fruits[-2])  # "cherry"(倒数第二个元素)
    
  • 切片list[start:end:step],包含 start 不包含 end

    numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(numbers[2:5])    # [2, 3, 4]
    print(numbers[:3])     # [0, 1, 2]
    print(numbers[7:])     # [7, 8, 9]
    print(numbers[::2])    # [0, 2, 4, 6, 8](步长为2)
    print(numbers[::-1])   # [9, 8, 7, ..., 0](反转列表)
    

4. 列表的基本操作

  • 访问元素:通过索引直接访问

    colors = ["red", "green", "blue"]
    print(colors[1])  # "green"
    
  • 修改元素:通过索引重新赋值

    colors[1] = "yellow"
    print(colors)  # ["red", "yellow", "blue"]
    
  • 拼接列表:使用 + 运算符

    list1 = [1, 2, 3]
    list2 = [4, 5, 6]
    combined = list1 + list2  # [1, 2, 3, 4, 5, 6]
    
  • 重复列表:使用 * 运算符

    repeated = [0] * 5  # [0, 0, 0, 0, 0]
    
  • 列表长度:使用 len() 函数

    print(len([1, 2, 3]))  # 3
    
  • 检查元素是否存在:使用 innot in

    fruits = ["apple", "banana"]
    print("apple" in fruits)     # True
    print("orange" not in fruits) # True
    

5. 列表常用方法

  • 添加元素

    fruits = ["apple", "banana"]
    fruits.append("cherry")       # 在末尾添加:["apple", "banana", "cherry"]
    fruits.insert(1, "orange")    # 在指定位置插入:["apple", "orange", "banana", "cherry"]
    fruits.extend(["date", "grape"]) # 扩展列表:添加多个元素
    
  • 删除元素

    fruits = ["apple", "banana", "cherry", "date"]
    fruits.remove("banana")       # 删除指定值的元素
    popped = fruits.pop()         # 删除并返回最后一个元素
    popped = fruits.pop(0)        # 删除并返回指定索引的元素
    del fruits[1]                 # 删除指定索引的元素
    fruits.clear()                # 清空列表
    
  • 排序与反转

    numbers = [3, 1, 4, 1, 5, 9]
    numbers.sort()                # 原地排序(升序)
    numbers.sort(reverse=True)    # 原地排序(降序)
    sorted_numbers = sorted(numbers)  # 返回新的排序后的列表
    
    numbers.reverse()             # 原地反转列表
    reversed_numbers = numbers[::-1]  # 返回新的反转后的列表
    
  • 查找与计数

    numbers = [1, 2, 3, 2, 4, 2]
    print(numbers.index(2))       # 1(返回第一个匹配项的索引)
    print(numbers.count(2))       # 3(计数元素出现的次数)
    
  • 其他常用方法

    fruits = ["apple", "banana", "cherry"]
    copied = fruits.copy()        # 复制列表(浅拷贝)
    

6. 列表推导式

一种简洁创建列表的方式:

# 基本形式:[表达式 for 变量 in 可迭代对象]
squares = [x**2 for x in range(10)]  # [0, 1, 4, 9, ..., 81]

# 带条件的列表推导式
even_numbers = [x for x in range(20) if x % 2 == 0]  # [0, 2, 4, ..., 18]

# 嵌套列表推导式
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]  # [1, 2, 3, 4, 5, 6]

7. 多维列表

列表可以包含其他列表,形成多维列表(如矩阵):

# 二维列表
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问元素
print(matrix[1][2])  # 6(第二行第三列)

# 遍历二维列表
for row in matrix:
    for num in row:
        print(num, end=" ")

8. 列表与其他数据类型的转换

# 字符串转列表
s = "hello"
chars = list(s)  # ['h', 'e', 'l', 'l', 'o']

# 元组转列表
t = (1, 2, 3)
lst = list(t)    # [1, 2, 3]

# 集合转列表
s = {
   1, 2, 3}
lst = list(s)    # [1, 2, 3](顺序不确定)

掌握这些列表基础知识,你可以处理大多数需要存储和操作序列数据的场景。列表是Python中最常用的数据结构之一,灵活运用列表方法和推导式可以大大提高编程效率。

目录
相关文章
|
8月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
343 4
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
1597 70
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
635 14
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
385 9
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
1605 10
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
365 1
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
553 7
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
334 0
【python】python指南(五):静态类型注解之List
|
索引 Python
Python列表操作-推导式(List Comprehension)
Python列表操作-推导式(List Comprehension)
1166 0

推荐镜像

更多