python:列表、元组和字典
1.1、特点:
任意对象的有序集合
通过偏移量读取
可变长度,异构以及任意嵌套
属于可变序列的分类
对象引用数组:当把一个对象赋给一个数据结构元素或变量名时,python总会存储对象的引用,而不是对象的拷贝。
1.2、创建列表
name_list = ['zhang', 'wang', 'li']
或 name_list = list(['zhang', 'wang', 'li'])
1.3、基本操作
索引:name_list[1] 列表中,第一个元素索引值为0.
追加:name_list.append('zhao'),追加可以重复,但是不建议这样做。
删除: name_list.pop()---删除最后一个;
name_list.pop(2)----按照索引位置删除
name_list.remove('zhang')---删除指定元素。
计数:name_list.count('zhao')
插入:name_list.insert(2,'zhangsan')
反转:name_list.reverse()
排序:name_list.sort() --按照ASC码排序.
去重:for i in range(name_list.count('zhang')):
name_list.remove('zhang')
切片:在列表中取出一段数据。顾首不顾尾。name_list[0:3]---切取前3个元素,name_list[0:4:2]隔一个取一个,最后一位代表间隔位长。
name_listp[-2:]---切取最后两个元素
扩展:a = a + b 或 a.extend(b) 把b附加到a上。
dir(name_list) 查看列表可用语法,忽略‘_add_’等双下划线的语法
判断元素是否在列表中:'zhang' in name_list
在某些应用中,将列表的pop和append连用,实现快速的后进先出。(LIFO)
2、元组
2.1 元组是只读的列表,
ages
=
(
11
,
22
,
33
,
44
,
55
)
或
ages
=
tuple
((
11
,
22
,
33
,
44
,
55
))
注:元组的元素不可以修改,但元组元素的元素可以修改。eg:元组的一个元素是字典,字典的元素可以修改。
dir(list)
>>>'count','index'
2.2 列表转换为元组 type查看列表类型。tuple(name_list)
元组转列表 list(list)
3.执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
1
2
3
4
5
6
|
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print sys.argv |
4、字典
字典是python语言中唯一的映射类型。
映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的关系,通常被认为是可变哈希表。
字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。
特点:
通过键而不是偏移量读取
任意对象的无序集合
可变长,异构,任意嵌套
属于可变映射类型
字典类型与序列类型的区别:
1.存取和访问数据的方式不同。
2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);
3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。
5.映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
6.映射类型用键直接“映射”到值。
创建字典:
1
2
3
|
person = { "name" : "mr.wu" , 'age' : 18 } 或 person = dict ({ "name" : "mr.wu" , 'age' : 18 }) |
1、键与值用冒号“:”分开;
2、项与项用逗号“,”分开;
3、字典中的键必须是唯一的,而值可以不唯一。
注意:如果字典中的值为数字,最好使用字符串数字形式,如:'age':'040′ 而不用 ‘age':040
常用操作:
D = {‘egg’:3, 'ham':1, 'spam':2}
- 索引 D['egg']
- 新增 D['brunch'] = 'Bacon' 字典的键是无序集合,新增的时候不可以指定键的位置。
- 删除 del D['egg']
D.pop('egg') 指定删除的键 - 循环
- 长度 len(D)
- 显示键,值,键值
>>>list(D.values()) >>>list(D.keys()) >>>list(D.items()) - get方法: D.get(key.default)
当键不存在时,字典遍历寻找后会返回一个missing -key 的错误,然而键不存在的时候通过get可以获得一个系统默认值None或用户自定义的default值。
eg:>>>D.get('spam') 2
print(D.get('toast')) None
D.get('toast', 88) 88 - update
- 循环
D = {'a':1, 'b':2, 'c':3}
for I in D:
print(I, '\t', D[I]) #‘\t’表示以tab分开键和值。 - 异常键值的捕获与修复
PS:循环,range,continue 和 break