Python学习笔记#2 列表与字典

本文深入探讨Python中列表和字典的特性、操作及应用技巧,包括数据存储方式、索引、遍历、更新与删除等核心概念,适合初学者和进阶者阅读。

1.列表List基本特点
1. 列表中的数据按顺序排列
2. 列表有正序和倒序两种索引 ( 索引:正序下标从0开始, 倒序下标从-1开始 )
3. 列表可存储任意类型数据, 且允许重复

列表的创建:
变量名 = [元素1,元素2,…] (若中括号内不写元素,则默认为空列表)
列表元素的更改/取值:
变量 = 列表变量 [ 索引值 ]
范围取值:
新列表变量 = 原列表变量 [ 起始索引 : 结束索引 ] ( 左闭右开 )
获取指定元素索引值:
list.index(元素n) ( 返回 元素n 列表中从左至右第一次出现的索引值 )

2.列表的遍历、反转与排序
1. 遍历
for…in 语句专门用于遍历列表、元组等数据结构
for 迭代变量 in 可迭代变量 :
循环体
2. 反转
reverse() 方法用于反转列表
3. 排序
sort() 方法用于对列表排序, 默认为升序。
若默认参数 reverse 设置为 True, 则变为降序排列。–> . sort( reverse = True )

3.列表的新增、修改、删除操作
1. list.append( 新元素 ) 在列表末端追加新元素
2. list.extend( [ 元素1, 元素2 ] ) 在末端追加多个新元素
PS: append 和 extend 的区别
list = [‘张三’, ‘李四’]
list.append([‘王五’, ‘赵六’])
list.extend([‘杨八’, ‘孙九’])
print(list)
–> [‘张三’, ‘李四’, [‘王五’, ‘赵六’], ‘杨八’, ‘孙九’]
append 将整个列表追加到末尾, extend 则是将列表中的元素追加到列表末尾
3. list.insert( 索引, 新元素 ) 在指定索引增加新元素
4. list[ 索引 ] = 新值 更新指定索引位置数据
5. list[ 起始索引 : 结束索引 ] = 新列表 更新指定范围数据
6. list.remove( 元素 ) = 删除指定元素
7. list.pop( 索引 ) = 按索引删除指定元素
8. list[ 起始索引 : 结束索引 ] = list[] 多个删除(范围删除) 赋空值, 相当于删除元素

4.列表的常用方法、使用技巧
1. 统计元素在列表中出现的次数: list.count( 元素 ) (若为字符串,则是–‘元素’ )
2. 成员运算符: in 用于判断数据是否在列表中存在, 存在返回 True, 不存在返回 False
3. copy() 函数 用于复制列表
4. 身份运算符: is 用于判断两个变量是否指向同一块内存
5. clear() 函数 用于清空列表
例: list = [‘张三’, ‘李四’]
list.clear() --> []
6. split() 函数 用于分割字符串 变成一个列表
例: str = “张三,20,3000”
str.split(",") --> [ ‘张三’ , ‘20’ , ‘3000’ ]

5.字典的特点
1. 字典采用 键(key) : 值(value) 形式表达数据
2. 字典中key不允许重复, value允许重复
3. 字典是可修改的, 运行时动态调整储存空间

创建字典的两种形式:
1 使用 {}
例:dict= { ‘name’ : ‘Alice’ , ‘sex’ : ‘男’ , grade = ‘A’ } --> { ‘name’ : ‘Alice’ , ‘sex’ : ‘男’ , grade = ‘A’ }
2 使用 dict() 函数
例: dict( name = ‘Alice’, sex = ‘男’, grade = ‘A’ ) --> { ‘name’ : ‘Alice’ , ‘sex’ : ‘男’ , grade = ‘A’ }
另一种方法 (根据key来创建,value默认为None):
dict.formkeys( [ ‘name’, ‘sex’, ‘grade’ ], ‘N/A’ ) --> {‘name’ : ‘N/A’ , ‘sex’ : ‘N/A’ , grade = ‘N/A’ }

6.字典的取值操作和遍历
1 直接取值 value = dict[ ‘key’ ]
2 get() 函数 dict.get(‘key’) (若值不存在,则返回None) 或者也可以设置默认值: dict.get( ‘key’, ‘自定义的默认值’ )
3 判断字典中的key是否存在 :
成员运算符: in 用于判断key是否在字典中存在, 存在返回 True, 不存在返回 False
4 字典的遍历
标准形式: for key in dict:
value = dict[key]
print(value)
成对出现形式: ( .items() 函数 返回字典中每一个键值对 )
for key,value in dict.items():
print(key, value)

7.字典的更新与删除操作
字典的更新与删除 都是秉承 “有则更新, 无则新增” 的原则
1. 直接修改更新(单个key,value) :
dict[ ‘key’ ] = ‘新value’
PS:若在dict中该key不存在,则在dict末尾追加该key、value
2. 对多个(key,value)更新 : update() 函数
例: dict.update(key1=value1, key2=value2…)
3. 对指定的key,value进行删除:
pop() 函数: dict.pop(‘key’)
4. 删除最后一个key,value:
popitem() 函数
5. 清空字典:clear() 函数
例: dict.clear() --> {}

8.字典的常用操作
1. 设置默认值
setdefault() 函数 : 若key已存在,则忽略 ;若不存在,则设置默认值为value。
dict.setdefault( ‘key’, ‘value’ )
2. 获取字典的视图(会随着数据的变化而变化)
假设设置:info = dict(name=‘Alice’, grade=‘A’)
(1) keys 代表所有的键
info.keys() --> dict_keys([‘name’, ‘grade’])
(2) values 代表所有的值
info.values() --> dict_values([‘Alice’, ‘A’])
(3) items 代表所有的键值对
info.items() --> dict_items([(‘name’, ‘Alice’), (‘grade’, ‘A’)])
3. 利用字典格式化字符串
(1) 老版本的字符串格式化:
info = dict(name=‘Alice’, grade=‘A’)
info_str = “姓名:%(name)s,评级:%(grade)s” %info (模板 : “姓名:%(key1)s,评级:%(key2)s” %dict)
–> 姓名:Alice,评级:A
(2) 新版本的字符串格式化:
info_str = “姓名:{name},评级:{grade}”.format_map(info)
–> 姓名:Alice,评级:A
4. 散列值与字典的存储原理
字典也称为 “哈希Hash” ,对应 “散列值” (分散存储, 而非连续存储 )
字典的存储原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值