博客
关于我
(三)Python总结笔记:容器及使用
阅读量:681 次
发布时间:2019-03-17

本文共 1891 字,大约阅读时间需要 6 分钟。

Python总结笔记(三)- 容器及使用

1. Python中的序列

序列的概念:

  • 有序存储(元素与元素之间的相互位置是确定的)
  • 可以通过下标偏移进行访问

序列对象(都符合序列的概念):str字符串,list列表,tuple元组

序列对象初始化:

  • str字符串:初始化用 ""
  • list列表:初始化用 []
  • tuple元组:初始化用 ()

例子:

s1 = 'julyedu.com'l1 = ['julyedu', 'AI教育']l2 = ['.com', '平台']l3 = [5, 12, 6, 3, 8, 9]l4 = ['tensorflow', 'sklearn', '']l5 = ['', '', '', '', '']t1 = ('julyedu', ['国内领先的人工智能平台', 'AI'])# t1[0] 和 t1[1] 分别是字符串和列表# t1[0][:5] 可以访问第一个元素中的索引值从 0 到 4 的 5 个字符

标准操作:

  • 成员操作:in / not in
  • 连接与重复:* 和 + (用于同类型之间)
    • '+' 表示连接
    • '*' 表示复制
  • 访问:索引与切片
  • 其他操作:len()、reversed()(需转换为列表)、sorted()(不改变原列表)、enumerate()、max()、min()、sum()、all()、any()、type()

2. 列表List

列表初始化:

  • 用 [] 初始化,可以保存不同类型的数据
  • 通过对其他数据类型转换而获得(如 range())

列表操作:

  • 内部操作
    • 赋值:l1[3] = 'Caffe'(赋值第 4 个元素)
    • 添加元素:append()
    • 扩展元素:extend()
    • 插入元素:insert()
    • 删除元素:pop()、remove()、del
  • 比较操作l2 < l3
  • 反转与排序:sorted()(不改变原列表)

3. 列表推导式 (List Comprehension)

  • 定义:利用现有数据创建新列表,代码可读性强
  • 语法:
    • [表达式 for 变量 in 列表]
    • [表达式 for 变量 in 列表 if 条件]

示例:

# 生成满足条件的列表l = list(range(300))l_com = [x for x in l if x >= 288]# 两个列表的交互final_list = [ (i,j) for i in range(5) for j in range(5) ]

4. 元组Tuple

元组是只读有序序列,属于不可变类型。基本操作与列表类似,但元组不可修改。

示例:

t1 = (5, 6, 7)# t1 + (4,) 会成功,但 t1 + 4 会报错a, b, c = t1  # 解包

注意事项:

  • 元组不可修改,尝试赋值会报错
  • 元组可以包含其他可变类型(如列表、字典)

5. 集合Set

集合是无序的唯一元素集合,主要用于去重和集合操作。

初始化:

  • 用 {} 初始化
  • 集合不是序列,不能用索引或切片访问

操作:

  • 成员操作:in / not in
  • 集合运算
    • 交集:&
    • 并集:|
    • 差集:-
    • 合并:|
    • 清空:clear()

示例:

s = {'AI', 'julyedu.com', 'julyedu', 'julyedu.com'}# 去重后的集合

6. 字典Dictionary

字典是可变的有序映射,key 值可以是可hash的类型(如 str、数字)。

操作:

  • 成员访问:用 key 获取 value
  • 新增删除:pop()、popitem()
  • 遍历:items()、values()、keys()
  • 内建函数:get()、update()、clear()

示例:

d = {'name': 'jack', 'age': 24}# 隐晦地用字典推导式d = dict(key=value, key2=value2)

7. Python内存管理

  • 引用概念:
    • 变量与对象之间的关系为引用
    • 引用计数(Reference Count)
    • 可在内存中多个对象共享同一个值

示例:

a = 'julyedu'b = aa = 'AI'print(b)  # 输出 'julyedu'

8. 可变与不可变对象

  • 不可变对象:数值(如 int)、字符串(如 str)
  • 可变对象:列表、元组(要注意元组不可变)、集合、字典
  • 不可变对象只能改变引用的指向,而可变对象可以通过引用改变自身结构

总结:列表和字典是核心的可变类型,集合和元组在某些情况下也可变。理解这些差异对后续编写代码至关重要。

转载地址:http://gifhz.baihongyu.com/

你可能感兴趣的文章
mysql备份工具xtrabackup
查看>>
mysql备份恢复出错_尝试备份/恢复mysql数据库时出错
查看>>
mysql复制内容到一张新表
查看>>
mysql复制表结构和数据
查看>>
mysql复杂查询,优质题目
查看>>
MySQL外键约束
查看>>
MySQL多表关联on和where速度对比实测谁更快
查看>>
MySQL多表左右连接查询
查看>>
mysql大批量删除(修改)The total number of locks exceeds the lock table size 错误的解决办法
查看>>
mysql如何做到存在就更新不存就插入_MySQL 索引及优化实战(二)
查看>>
mysql如何删除数据表,被关联的数据表如何删除呢
查看>>
MySQL如何实现ACID ?
查看>>
mysql如何记录数据库响应时间
查看>>
MySQL子查询
查看>>
Mysql字段、索引操作
查看>>
mysql字段的细节(查询自定义的字段[意义-行列转置];UNION ALL;case-when)
查看>>
mysql字段类型不一致导致的索引失效
查看>>
mysql字段类型介绍
查看>>
mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
查看>>
MySQL字符集与排序规则
查看>>