Python基础教程:列表字典的键值修改
list (修改列表的索引值)
循环一个列表时,最好不要对原列表有改变大小的操作,这样会影响你的最终结果。
#使用负索引进行修改列表
print('First')
lis = [11, 22, 33, 44, 55]
print(lis)
for num in range(len(lis)-1,-1,-1):if num % 2 != 0: lis.pop(num)
else:print(lis)#使用步长进行修改列表
print('Second')
lis = [11, 22, 33, 44, 55]
print(lis)
del lis[1::2]
print(lis)#添加新的列表进行修改
print('Third')
lis = [11, 22, 33, 44, 55]
print(lis)
new_lis = list()
for num in range(len(lis)):if num % 2 == 0: new_lis.append(lis[num])
else:lis = new_lis
print(lis)
dict
在循环中不可以改变字典的键值对(增加、删除)
RuntimeError: dictionary changed size during iteration
dict.fromkeys()dic = {'k1': 'v1', 'k2': 'v2', 'name': 'alex'}
错误的示范
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:531509025
'''for key in dic:if 'k' in key:dic.pop(key)
print(dic)
修改字典的内容需要把修改的键加入到空列表然后遍历修改字典的值
l1 = list()
for key in dic:if 'k' in key:l1.append(key)
print(l1)
for key in l1:dic.pop(key)
print(dic)
ValueError: unknown locale: UTF-8
File "/Users/wyl/Documents/effectmatrix/program/minetest/MCEdit-Unified-master/ENV/lib/python2.7/locale.py", line 545, in getdefaultlocalereturn _parse_localename(localename)File "/Users/wyl/Documents/effectmatrix/program/minetest/MCEdit-Unified-master/ENV/lib/python2.7/locale.py", line 477, in _parse_localenameraise ValueError, 'unknown locale: %s' % localenameValueError: unknown locale: UTF-8
解决方法:
1.在.bash_profile文件中加入
export LANG="en_US.UTF-8"export LC_COLLATE="en_US.UTF-8"export LC_CTYPE="en_US.UTF-8"export LC_MESSAGES="en_US.UTF-8"export LC_MONETARY="en_US.UTF-8"export LC_NUMERIC="en_US.UTF-8"export LC_TIME="en_US.UTF-8"
2.source 使用更新后的内容
source .bash_profile
测试
python -c 'import locale; print(locale.getdefaultlocale());'
异常处理
异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
StandardError | 所有的内建标准异常的基类 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操作系统错误的基类 |
IOError | 输入/输出操作失败 |
OSError | 操作系统错误 |
WindowsError | 系统调用失败 |
ImportError | 导入模块/对象失败 |
LookupError | 无效数据查询的基类 |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
NameError | 未声明/初始化对象 (没有属性) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 尚未实现的方法 |
SyntaxError | Python 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 一般的解释器系统错误 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
序列化注意事项:
- json: 传入传出为字符串
- 文件打开使用’r’模式
- 只能写一行
- 只支持字典
json.dumps(data,sort_keys=True,indent=2,separators=(',',':'),ensure_ascii=False)#sort_keys 排序
#indent 缩进
#separators 分隔符
#ensure_ascii 支持中文
- pickle:传入传出为bytes类型
- 文件打开使用’rb’模式
- 支持任意类型
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:531509025
'''print(pickle.loads(b'\x80\x03}q\x00X\x01\x00\x00\x001q\x01K\x04s.'))#字符串的格式为'bytes',不是需要'encode()'
- shelve:打开文件的参数增加’writeback=True’防止写入失败
- 支持字典
import shelve
f = shelve.open('c',writeback=True) #创建文件
#writeback = True 回写
Python基础教程:列表字典的键值修改相关推荐
- Python基础教程:字典(当索引不好用时)
一.定义与概念 1.字典是针对非序列集合而提供的一种数据类型 举例:检索学生信息. "<键><值>对". 键(即身份证号码) 值(即学生信息). " ...
- Python基础教程:字典和Json
字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ...
- Python基础教程:赋值语句和布尔值
一.赋值语句 1.序列解包 多个赋值同时进行: >>> x,y,z = 1, 2, 3 >>> print(x, y, z) 1 2 3 变量交换: >> ...
- python多层级的字典访问键值_python – 将一行分成具有多层键值对的字典
我有一个包含这种格式的行的文件. Example 1: nextline = "DD:MM:YYYY INFO - 'WeeklyMedal: Hole = 1; Par = 4; Inde ...
- python字典的键可以用列表吗_python字典多键值及重复键值的使用方法(详解)
在Python中使用字典,格式如下: dict={ key1:value1 , key2;value2 ...} 在实际访问字典值时的使用格式如下: dict[key] 多键值 字典的多键值形式如下: ...
- python字典返回键值对列表_返回列表Python dict dictionaries Python 数据结构——字典 返回列表...
最近研究返回列表,稍微总结一下,以后继续补充: 字典是比列表更先进的一种内置数据结构. "字典"就像现实中的字典一样,每一个单词对应好几个意思.在Python面里就是每一个键对应一 ...
- python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
- Python基础数据类型---列表、元组、字典、集合、编码进价、数据类型转换
文章目录 一.列表(List) 二.元组(tuple) 三.字典(dict) 四.集合(set) 五.数据类型间的转换 六.基础数据类型的总结 七.编码 八.练习题 一.列表(List) 列表是pyt ...
- 20190513——python基础(列表、数据类型:字典、列表和字典的异同)
二.python基础(列表.数据类型:字典.列表和字典的异同) 1.列表 1)什么是列表 2)从列表提取单 ...
最新文章
- iOS----------计算一段代码执行时间
- php mysql用户登录_php mysql实现用户登录功能的代码示例
- 平面设计常用的图像文件格式
- CCS6.2超详细使用方法
- java 图片上传 预览 demo_图片上传预览
- 学会科学饮水令你越喝越美
- idea maven 删除dependencies_使用IDEA创建Maven工程 创建javase工程
- java autointeger_【Java多线程】线程安全的Integer,AutomicInteger
- 织梦系统MySQL安装_如何更改已安装的织梦dedecms系统数据库表前缀?
- android快速查询,android常用adb快捷命令一览表
- 偶然接触oracle中的变量
- 浅谈“Robots文件信息泄露”
- 计算机专业需要物理力学,读经典物理学和量子力学所想到的计算机哲学
- the info.plist in the package must contain the CFBundleShortVersionString key.
- Android 开发多摄像头 API
- mysql数据库教学系统设计_MySQL-教学系统数据库设计
- 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(一)
- 唯品会定时任务组件Saturn的时间不一致bug,超时
- 【软路由】J4125安装PVE7.3+iKuai+OpenWrt+NAS+Win10+Debian+CentOS
- inmp构架搭建Wordpress博客
热门文章
- Spring Cloud【使用jenkins持续部署】Gogs+jenkins+Docker Swarm+Protainer
- Linux 命令详解(六)Linux 守护进程的启动方法
- 结构体成员管理AVClass AVOption之2AVOption,设置选项值
- HornetQ之JMS2.0 (实例讲解)
- CISCO路由器配置手册--第五章 虚拟局域网(VLAN)路由
- ip pim spare 源树 和 共享树_iPhone通过内置应用与电脑传输共享文件指南
- 【测试】RPA产品初体验
- 【学习笔记】产品成本计划(Product Cost Planning)01
- response code 404 500
- SAP新总账 凭证分割