Python 入门:核心数据结构详解
Python 作为脚本语言及人工智能领域的重要工具,其基础数据结构的学习至关重要。本文详细讲解了列表、元组、字典等核心数据类型的定义、常用方法及操作技巧,涵盖切片、推导式、不可变性原理等内容,帮助开发者快速掌握 Python 数据处理的核心能力。
Python 作为脚本语言及人工智能领域的重要工具,其基础数据结构的学习至关重要。本文详细讲解了列表、元组、字典等核心数据类型的定义、常用方法及操作技巧,涵盖切片、推导式、不可变性原理等内容,帮助开发者快速掌握 Python 数据处理的核心能力。

Python 作为脚本语言及人工智能领域的重要工具,其基础数据结构的学习至关重要。本文详细讲解了列表、元组、字典等核心数据类型的定义、常用方法及操作技巧,涵盖切片、推导式、不可变性原理等内容,帮助开发者快速掌握 Python 数据处理的核心能力。
学习 Python 之前,建议安装集成开发环境(IDE),如 PyCharm 或 VS Code,它们能提供代码补全和调试功能。如果是 macOS 系统,通常默认预装了 Python 3,可直接在终端使用 python3 命令验证版本。Windows 用户需从官网下载安装包并配置环境变量。
Python 与其他语言最大的区别在于语法结构,它不使用大括号 {} 来控制代码块,而是通过缩进来表示逻辑层级。因此,编写代码时务必保持缩进规范,建议使用 4 个空格作为一级缩进。
if True:
print("647")
else:
print("false")
列表是 Python 中最常用的可变序列类型,可以存储任意类型的对象。
for 循环遍历列表元素。arr = [6, 4, 7]
list_data = []
for n in arr:
if n % 2 == 0: # 筛选偶数
list_data.append(n)
print(list_data) # [6, 4]
[start, end)。arr = [6, 4, 7]
print(arr[0]) # 6
print(arr[-2]) # 4
print(arr[1:]) # [4, 7]
print(arr[::-1]) # [7, 4, 6] 反转
len() 返回长度,max()/min() 获取极值,list() 转换可迭代对象。arr = [6, 4, 7]
tup = (1, 2)
print(len(arr)) # 3
print(max(arr)) # 7
print(min(arr)) # 4
print(list(tup)) # [1, 2]
append(obj):末尾追加元素。count(obj):统计元素出现次数。extend(seq):合并另一个序列。index(obj):查找第一个匹配元素的索引。insert(index, obj):指定位置插入。pop([index]):移除并返回元素,默认为最后一个。remove(obj):移除第一个匹配值的元素。reverse():原地反转列表。sort(key=None, reverse=False):原地排序。lst = [6, 4, 7]
lst.append(6)
print(lst.count(6)) # 2
lst.extend([4, 7])
print(lst.index(4)) # 1
lst.insert(0, 5)
print(lst.pop(0)) # 5
lst.remove(7)
lst.reverse()
lst.sort()
print(lst) # [4, 4, 6, 6, 7]
列表推导式提供了一种简洁的创建列表的方式,支持嵌套循环。
arr = [6, 4, 7]
even_list = [n for n in arr if n % 2 == 0]
print(even_list) # [6, 4]
# 多重循环生成笛卡尔积
signs = ['+', '-', 'x']
numbers = [6, 4, 7]
ascli = ['{s}{n}'.format(s=sign, n=number)
for sign in signs for number in numbers]
print(ascli)
# ['+6', '+4', '+7', '-6', '-4', '-7', 'x6', 'x4', 'x7']
元组是不可变的序列,一旦创建无法修改其内容。适用于存储不应被更改的数据集合。
append、del 等操作,但内部包含的可变对象(如列表)仍可修改。tup = (1, [6, 4])
# tup[0] = 2 # TypeError: 'tuple' object does not support item assignment
tup[1].append(7)
print(tup) # (1, [6, 4, 7])
tup1 = (6,) + (4, 7)
print(tup1) # (6, 4, 7)
tup2 = (6, 4, 7) * 3
print(tup2) # (6, 4, 7, 6, 4, 7, 6, 4, 7)
tup = (6, 4, 7)
a, b, _ = tup
print(a, b) # 6 4
# 扩展解包
first, *middle, last = tup
print(first) # 6
print(middle) # [4, 7]
print(last) # 7
from collections import namedtuple
people = namedtuple('people', ['name', 'age'])
p = people('647', '26')
print(p.name) # 647
len(), max(), min(), tuple() 用法与列表类似。tup = (6, 4, 7)
print(len(tup)) # 3
print(tuple([6, 4, 7])) # (6, 4, 7)
字典是键值对(Key-Value)的无序集合,通过 Key 快速访问 Value。
{} 创建,支持直接遍历 Key。d = {'a': 6, 'b': 4, 'c': 7}
print(d['a'], d['b'], d['c']) # 6 4 7
for key in d:
print(key, d[key])
clear():清空字典。copy():浅拷贝。get(key, default):安全获取值,不存在返回默认值。items() / keys() / values():返回视图对象。update(dict2):更新字典。pop(key):删除并返回对应值。setdefault(key, default):若 key 不存在则设置默认值。d = {'a': 6}
d.setdefault('b', 4) # 添加新键值对
print(d.get('c', 0)) # 0
print(d.items()) # dict_items([('a', 6), ('b', 4)])
d.update({'c': 7})
print(d.pop('a')) # 6
注意:Python 3 中已废弃 has_key 方法,请使用 in 关键字判断键是否存在。
集合是无序且不重复的元素集,常用于去重和数学集合运算。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1 | s2) # 并集 {1, 2, 3, 4, 5}
print(s1 & s2) # 交集 {3}
print(s1 - s2) # 差集 {1, 2}
print(s1 ^ s2) # 对称差集 {1, 2, 4, 5}
s1.add(4)
s1.remove(2)
字符串是不可变的字符序列,支持丰富的格式化操作。
s = "hello,world"
print(s[0:3:2]) # hl
print(s.upper()) # HELLO,WORLD
print(s.split(',')) # ['hello', 'world']
# f-string 格式化
name = "Alice"
age = 25
msg = f"{name} is {age} years old"
print(msg)
copy 模块中的 deepcopy 以避免引用共享问题。掌握这些核心数据结构及其特性,是编写高效 Python 程序的基础。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online