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

本文共 1912 字,大约阅读时间需要 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 = a
a = 'AI'
print(b) # 输出 'julyedu'

8. 可变与不可变对象

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

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

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

你可能感兴趣的文章
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>