list 是Python中最具灵活性的对象类型,它支持在原处修改,可以指定偏移值和分片,列表方法调用,删除语句等方法实现,它有点像数组,支持偏移读取,也支持分片读取。和数组不一样的是,列表长度是可变的,并且可以包含任意类型的对象,而不是要求统一的数据类型。
列表的一些常用操作
L1=[] 一个空的列表
L2 = [0, 1, 2, 3] 四元素列表
L3 = [‘abc’,10,[‘def’, ‘ghi’] 嵌套列表
L2[i] 索引
L3[i][j] 索引的索引
L2[i:j] 分片
len(L2) 求长度
L1 + L2 合并
L2 * 3 重复
列表常用方法
append(x)把一个元素添加到列表的末尾
extended(L)通过添加指定列表的所有元素来扩充列表,相当于a[len(a):]=L
insert(i,x)在指定位置插入一个元素
remove(x)删除列表中值为x的元素
pop([i])从列表指定的位置删除一个元素并返回,如果没有指定索引,那么久从末尾弹出一个元素
index(x)返回列表中第一个值为x的元素的索引
count(x)返回列表中元素x的个数
sort()对列表按自然序排序
reverse()倒序
可以通过函数组合把列表当做队列和堆栈用
栈
append
pop
队列
del
append
元组
一个元组由数个逗号隔开的对象组成
t=(1,2,3)
元组在输出时总是有括号的,以便于正确表达嵌套结构。
在输入时,有或没有括号都可以,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。
元组有点像字符串,不可改变元素的值,也不可通过索引给一个字符赋值,但是可以通过连接或切片来模仿一些操作
元组的封装和解封
语句t = 12345, 54321, ’hello!’ 是元组封装(sequence packing)的一个例子:值12345,54321 和’hello!’ 被封装进元组。其逆操作可能是这样:
这个调用被称为序列拆封非常合适。序列拆封要求左侧的变量数目与序列的元素个数相同
>>> t = [1, 2, 3]
>>> x, y, z = t
>>> print x, y, z
1 2 3
>>> s = "123"
>>> x,y,z = s
>>> print x, y, z
1 2 3
字典
字典类似于通过联系人名字查找地址和联系人详细情况的地址簿,即:我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,将无法找到正确的信息
使用字典的has_key()方法可以检查字典中是否存在某一关键字
字典的values()方法返回字典内所有的值
字典的get()方法可以根据关键字返回值,如果不存在输入的关键字,返回None
字典的update(anothordict)方法类似于合并,它把一个字典的关键字和值合并到另一个,盲目的覆盖相同键的值
字典的pop()方法能够从字典中删除一个关键字并返回它的值,类似于列表的pop方法,只不过删除的是一个关键字而不是位置
print(dict.has_key('zhanghong'))#返回是否含有某个键值
for value in dict.keys():#返回所有关键字组成的列表
print(value)
for value in dict.values():#返回所有关键字对应的值组成的列表
print(value)
print(dict.get('zhanghong'))#后面的值覆盖了前面的值
dict1={'1':1,'2:':2,'3':3}
dict2={'3':3,'4:':4}
dict1.update(dict2)#它把一个字典的关键字和值合并到另一个,盲目的覆盖相同键的值
for value in dict1.values():
print(value)
"""
如果有一个键值对应多个值,你想取得前面的值,那么可以进行一个判断,然后取出相应值
但是在一个字典中不可能有重复的键值
比如要取得键为'zhanghong'-->1988316
"""