1.list列表
list是一种可变的,有序的列表,可以随时添加和删除其中的元素。
其格式如下:list-name=[element1,element2,....]
>>> nums = ['', '', '']
>>> nums
['', '', '']
注:若为nums=[ ],则表示空!
1.1获取list元素的个数:len(list-name)
>>> len(nums)
3
1.2通过索引访问元素(索引从0开始,倒着数从-1开始)
>>>nums[0]
'' >>>nums[-2]
''
1.3添加元素
1.3.1在末尾添加元素:list-name.append(value)
>>> nums.append('')
>>> nums
['', '', '', '']
1.3.2在指定位置添加元素:list-name.insert(索引,value)
>>> nums.insert(1, '1.5')
>>> nums
['1', '1.5', '2, '3', '4']
1.4删除末尾的元素:list-name.pop()
>>> nums.pop()
>>> nums
['1', '1.5', '2, '3']
1.5删除指定位置的元素:list-name.pop(索引)
>>> nums.pop(1)
>>> nums
['', '2, '3']
1.6替换元素:list-name[索引]=value
>>> nums[1] = '1.5'
>>> nums
['1', '1.5', '']
1.7元素类型可以不一致,并且可以嵌套
>>> p = ['', '']
>>> s = ['a', 'b', p, 'c']
2.tuple元组
tuple和list非常类似,但是tuple一旦初始化就不能修改。
其格式如下:tuple-name=(element1,element2,...)
# 空元组
>>>tup1 = ()
# 单个元素需要增加一个‘,’
>>>tup2 = (1,)
>>>print tup1, tup2
() (1,)
一个可变的tuple:
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
注:这里嵌套了list列表,由于改变的是list中元素,与tuple无关.
3.dict字典
dict全称dictionary(字典),在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
dict的key必须是不可变对象。
在Python中,字符串、整数等都是不可变的,可以用作key。
其格式如下:dict-name={key1:value1, key2:value2, ...}
>>> age = {'tom': 13, 'jack': 14, 'jim': 15}
>>> age
{'tom': 13, 'jack': 14, 'jim': 15}
3.1查看元素: dict-name[key] / dict-name.get(key)
#方式一
>>>age['Tom']
13
#方式二
>>>age.get('Tom')
13
注:当key不存在时,方式一将报错;方式二则返回值none.
3.2更新元素:dict-name[key]=value
>>> age['tom'] = 10
>>> age.get('tom')
10
3.3删除元素:dict-name.pop(key) / del dict-name[key]
>>> age.pop('tom')
>>> age
{'jack': 14, 'jim': 15}
3.4添加新元素
>>> age['jerry'] = 17
>>> age
age = { 'jack': 14, 'jim': 15, 'jerry': 17}
python字典内置了一下函数和方法:
4.set集合
set和dict类似,它是一组存储key的无序的集合,且不存储value;由于key不能重复,所以在set中无重复的key。
创建一个set,需要提供一个list,或者提供一个字符串:
其格式如下:set-name=set( [list] / str )
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3} >>> s1 = set('abcabc')
>>> s1
{'a', 'c', 'b'}
4.1添加元素:set-name.add(key) / set-name.update(seq)
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>>set1 = set(['', '', ''])
>>>set2 = set('')
>>>set1.update(set2)
>>>set1
{'', '', '', '', ''}
4.2 移除元素:set-name.remove(key) / setname.pop()
注:pop()会删除任意一个对象
>>> s.remove(4)
>>> s
{1, 2, 3}
4.3操作符:|,&,-,^
set1 = set(['', '', ''])
set2 = set('')
# 并集union()
print set1 | set2
# 交集intersection()
print set1 & set2
# 补差difference()
print set1 - set2 # {'1', '2'}
# 对称拆分symmetric_difference()
print set1 ^ set2 # 没有'3'
5.切片
当我们需要取list或者tuple中一块内容时,使用循环遍历取值十分麻烦,为此python提供了切片功能。
格式如下:list-name[索引1:索引2 : 步长]
注:从索引1开始,到索引2结束,但是不包含索引2. 步长为索取元素之间的间隔.
现有list列表如下: L=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
当取索引为0-2的元素时,可以使用L[0:3].
当有一个索引为0或-1还可以省略,例如L[:3],L[-2:],L[:].
当取索引为6-8的元素时,可以使用L[-4:-1].
当取第1,3,5个元素时,可以使用L[0:5:2].
注:对于tuple的操作,同样适用上述规则.
另外,字符串也可以看成一个list,此时一个字符看成一个元素,操作结果仍然是字符串。
>>> 'ABCDEFG'[:3]
'ABC'
6.其他操作符
使用+,×,in¬ in对列表、元组等进行运算.
myList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #in & not in
for i in myList:
print i i = 6
if i not in myList:
print 'not in'
else:
print 'in' # +
tempList = [10, 11, 12, 13]
# myList.extend(tempList)
# print myList
# print myList+tempList [0,1,...,13] # *
tup3 = (2, 3)*2
print tup3 #(2, 3, 2, 3)