list
list为python内置有序集合,可随意添加及删除元素;
list用 [] 定义;
mylist = ['aaa', 'bbb', 300, 'ccc']
#list中数据元素可以为不同类型
print len(mylist) #输出mylist长度
print mylist[0] #访问mylist第一个元素
print mylist[-1] #访问mylist最后一个个元素
mylist[0] = 'ddd'
mylist.append('fff') #mylist在其最后添加元素
mylist.insert(1, 'ggg'); #在mylist第一个元素后添加元素,其他元素后移
mylist.pop() #删除list末尾的元素(最右侧)
mylist.pop(1) #删除list索引位置为1的元素(第2个)
mylist = ['aaa', [300, 800], 'ccc'] #mylist中包含另一个list
print mylist[1][0] #输出mylist第二个元素的第一个元素
#切片(Slice)
mylist = ['aaa', 'bbb', 300, 'ccc']
newlist = mylist[0:2] #从索引0开始取,直到索引2为止, 但是不包含索引2 newlist=['aaa', 'bbb']
#如果第一个索引是0,还可以省略 newlist = mylist[:2] 同上
newlist = mylist[-2:] # [300,'ccc']
newrange = range(100)
nr = newrange[:10:2] #前10个,每隔2个取一个; --> [0, 2, 4, 6, 8]
nr2= newrange[::5] #所有数,每隔5个取一个
#[:]原样复制
#字符串'xxx'或Unicode字符串u'xxx'也可以看成是一种list,每个元素就是一个字符
'ABCDEFG'[:3]
tuple
python的另一种有序列表,tuple一旦初始化就不能被修改
tuple用 () 定义;
mytuple = ('zhangsan', 'lisi', 'wangwu')
# 定义tuple时就必须确定其元素,因为一旦定义将不能改变其内容;tuple没有append及insert函数,也不能通过[index]更改其值;
#有1个元素的tuple定义时必须加一个逗号,(为了防止与数学公式小括号歧义)
t = (1,)
#一个另类:可变的tuple
t2 = ('a', 'b', [100, 200])
t2[2][0] = 500
# tuple所谓的“不变”是说,tuple的每个元素,指向永远不变
dict
python内置字典数据结构,key-value存储数据;(其他语言中也称为map)
dict用 {} 进行定义
#示例:
d = {'zhangsan' : 23, 'lisi' : 25, 'wangwu' : 28}
print d['zhangsan']
d['zhaoliu'] = 27 #增加dict元素
#当访问dict中不存在的key时会报错,所以访问时,先判断;
if 'lisi' in d:
print d['lisi']
#也可以用dict的get方法访问,不存在时,返回None,或者自己指定的value
d.get('lisi') #返回25
d.get('vivi') #返回None
d.get('vivi', 0) #返回0
#pop(key)方法删除一个key-value组
d.pop('zhangsan')
dict内部存放的顺序和key放入的顺序是没有关系的
dict的key必须是不可变对象
set
Python内置集合类;
创建时需要提供一个list作为输入集合;
s = set([1, 2, 3,1])
print s #重复元素会被过滤掉set([1, 2, 3])
#add(key)增加元素至set
s.add(4)
#remove(key)删除元素
s.remove(4)
#set集合操作交集、并集
s1 = ([1, 2, 3])
s2 = ([2, 3, 4])
s1 & s2 #交集,[2, 3]
s1 | s2 #并集,[1, 2, 3, 4]
#tuple也可以用切片操作,只是操作的结果仍是tuple
(0, 1, 2, 3, 4, 5)[:3] 结果: (0,1,2)
总结:
list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
dict为python内置字典存储(key-value);
set为python内置集合;
网友评论