列表
列表是Python里的内建的类型之一,可以添加和删除其中的元素。如>>>role = [['Sam',33],['Dean'],37]]
,可以列表中包含列表,同一列表中包含不同类型的数据。下面介绍列表的一些通用操作,关于list的其他用法,可以通过help(list)
查看。
基本操作
- 索引分片
>>>a = [2,13,12,41,17,23]
>>>a[1] #列表从0开始
13
>>>a[-1] #索引为负,从列表末开始
23
>>>a[2:4] #分片操作
[12,41]
>>>a[:3]
[2,13,12]
>>>a[1:6:2] #分片步进
[12,41,23]
>>>a[6::-2] #步进为负,从列表尾部开始取
[23,41,13]
- 列表相加
>>>[2,11,3] + [12,31,4]
[2,11,3,12,31,4]
- 乘法
>>>[1,2] * 3
[1,2,1,2,1,2]
- 删除元素
>>>num = [1,2,3,4] #删除单个元素
del num[2]
>>>num
[1,2,4]
>>>num = [1,2,3,4] #分片删除
del num[2:]
>>>num
[1,2]
- 分片赋值
>>>name = list('Python')
>>>name[1:] = list('erl') #可以替换原有的值
>>>name #也可以在原有列表中插入值
['P','e','r','l'] #也可以删除元素(分片赋空值)
列表方法
呃,关于方法和函数的区别,可以这么说函数是通用的,大家都可以用,而方法是仅用于某一具体对象的函数。一般方法是这么调用的对象.方法(参数)
。
- append
>>>num = [1,2,3] #追加元素至末尾
>>>num.append(4)
>>>num
[1,2,3,4]
- count
>>>[3,[1,41],1,2,3,1].count(1)
2 #复合列表统计出现次数,只算最外面一层
- enxtend
>>>a = [1,2,3] #追加多个值至末尾
>>>b = [4,5,6]
>>>a.extend(b)
>>>a
[1,2,3,4,5,6]
- index
>>>a = [1,2,3,2,4]
>>>a.index(2) #L.insert(value,[start,[stop]])
1 #返回某个值的第一个匹配项的索引
- insert
>>>a = [1,2,4]
>>>a.insert(2,3) #L.insert(index,object)
>>>a #在列表任何位置插入元素,且插入索引(index)前
[1,2,3,4]
- pop
>>>a = [1,2,3] #L.pop(index) 缺省是最后一个元素
>>>a.pop() #与添加插入操作相反
- remove
>>>a = [1,2,3,2,11] #移除列表中的第一个匹配项
>>>a.remove(2)
>>>a
[1,3,2,11]
- reverse
>>>a = [1,2,3]
>>>a.reverse()
>>>a
[3,2,1]
- sort
>>>a = [5,1,2,6,8]
>>>a.sort()
>>>a
[1,2,5,6,8]
以上的这些操作,有的并不会改变原列表的值,如连接操作(a + b),乘法([1,2] * 3)。
元组
元组(tuple)与列表一样也是一种序列,两者形式上的差别仅仅是列表为[1,2,3],而元组为(1,2,3)。实际使用中,元组也仅仅比列表多了不可更改的特性。
对于元组的基本操作,与前面提到的几种列表的操作完全一样(除了会改变元素的操作)。
>>>(1,2,3) #创建元组
(1,2,3)
>>>a = 1, #创建单个元素的元组,只需在末尾加上逗号即可
>>>type(a)
(type 'tuple')
字典
这是一种通过名字(键,key)来寻找值的数据结构。类似于字典的构造,通过字的拼音首字母来寻找对于的一类字。
注意
键的类型必须是不可变的类型,如字符串、元组。
字典的<键,值>对,并不一定按照你创建时的次序存储的,它是随机的。
创建字典
>>>d = {'a':('about','at'),'b':('but','blue')}
>>>d['a'] #整个字典由大括号包起来,字典由键与其对应的值组成
('about','at') #键-值间用冒号隔开,单个键可以对于多个值
基本操作
d[k] #返回关联到键k上的值
d[k] = v #将值v关联到键k上
del d[k] #删除键为k的项
k in d #检查字典中是否有键为k的项
字典方法
- clear
>>>d = {'a':['about','at'],'b':['but','blue']}
>>>d.clear() #用于清空整个字典
>>>d
{}
- copy
>>>d = {'a':['about','at'],'b':['but','blue']}
>>>y = d.copy()
>>>y
{'a':['about','at'],'b':['but','blue']}
#这里要注意
>>>y['a'] = ['abandon]
>>>y['b'].remove('but')
>>>y
{'a':['abandon'],'b':['blue']} #替换副本的值并不会影响原来的字典
>>>x #但是修改某个值,原始字典的值也会改变
{'a':['about','at'],'b':['blue']}
- items和iteritems
>>>{'a':['about','at'],'b':['but','blue']}
>>>d.items() #以列表的形式返回字典的<键,值>对
[('a',['about','at']),('b',['but','blue')]
>>>{'a':['about','at'],'b':['but','blue']}
>>>y = a.iteritems() #与items的作用差不多,只不过返回的是一个迭代器
>>>y
<dictionary-itemiterator object at 0x0000000002758F48>
>>>list(y)
[('a',['about','at']),('b',['but','blue')]
与这两个作用类似的还有,keys和iterkeys,values和itervalues。
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。