python列表、元组、字典的介绍及常用方法

周一次课(10月23日)

4.5 学习python列表的常用方法

列表是由一序列特定顺序的元素组成的。可以把字符串,数字,字典以及其他任何东西加入到列表中,其中的元素之间没有任何关系。列表也是自带下标的,默认也是从零开始。

>>> str='abcdefg'
>>> print(list(str))
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>>

append 添加

>>> str='abcdefg'
>>> a=['1','2','3']
>>> a.append(str)
>>> print(a)
['1', '2', '3', 'abcdefg']
>>>

index 查找,类似于find

>>> b=['1','2','3','abc']
>>> print(b.index('abc'))
3
>>>

第一个下标为0,所以abc输出下标为3

insert 插入

>>> b=['1','2','3','abc']
>>> b.insert(2,'zx')  //插入到目标下标位
>>> print(b)
['1', '2', 'zx', '3', 'abc']
>>>

pop

>>> b=['1','2','3','abc']
>>> b.pop() //括号内跟下标,不加默认最后一位
>>> print(b)
['1', '2', '3']
>>>

remove 删除

>>> c=['1','000','2','000','3']
>>> c.remove('000')  //若有多个相同元素,只会删除第一个
>>> print(c)
['1', '2', '000', '3']
>>>

sort排序

>>> d=['2','a','1','c','0','3','b']
>>> d.sort()
>>> print(d)
['0', '1', '2', '3', 'a', 'b', 'c']
>>>

revers 反序

>>> d=['2','a','1','c','0','3','b']
>>> d.reverse()
>>> print(d)
['b', '3', '0', 'c', '1', 'a', '2']
反向排序
>>> d=['2','a','1','c','0','3','b']
>>> d.sort()
>>> d.reverse()
>>> print(d)
['c', 'b', 'a', '3', '2', '1', '0']
>>>

切片

print(a[start:stop:step]) //起始下标(包含本下标):终止下标(不包含本下标):步长
>>> e=['0','1','2','3','4','5','6']
>>> print(e[3:])
['4', '5','6']
>>> print(e[0:6])
['0', '1', '2', '3', '4', '5']
>>> print(e[0:7:2])
['0', '2', '4', '6']
>>>

4.6 元组 tuple

tuple可以认为是不可变的list,在使用上有些差别

tuple的定义形式为

t=('a','b','c','abc','1','2')

由于Tuple不可更改,所以它能使用的方法只有index和count

tuple单个元素

>>> a=(1)
>>> print(type(a))
<type 'int'>
>>> b=(1,)   //单个元素需要加“,”分离,并且不能用“''”单引号
>>> print(type(b))
<type 'tuple'>
>>> c=('1')
>>> print(type(c))
<type 'str'>
>>>

count 统计元素个数

>>> f=('0','0','0','1','2','3','4')
>>> print(f.count('0'))
3
>>>

index 查找元素

>>> f=('0','0','0','1','2','3','4')
>>> print(f.count('0'))  //只会查找第一个,若元素不存在会报错
3
>>>

4.7 学习python的字典和方法

字典是一种key:value的这种形式在很多语言中使用,java用map,json等,redis也存在hash等形式。虽然名字不同,但都是key:value的形式。

字典为另一种可变容器模型,并且可存储任意类型的对象。

字典的每个键值(key=>value)对应“:”分隔,每个对之间用“,”分隔,整个字典在{}中,字典赋值有三种方式

k={'name':'zx','age':'18'}
d=dict(a=1,b=2,c=3)
d=dict([('name','zx'),('age',18)])

clear清除

>>>k={'name':'zx','age':'18'}
>>>k.clear()
>>>print(k)
{}
>>>

get 获取

>>> k={'name':'zx','age':'18'}
>>> print(k.get('name'))
zx
>>> print(k.get('address'))
None 
>>>

setdefault 设置默认值

不加参数时,setdefault和get的使用十分相像
>>> k={'name':'zx','age':'18'}
>>> print(k.setdefault('name'))
zx
>>> print(k.setdefault('address'))
None
>>>
设置参数后,当对应值不存在时,会自动将设置的参数作为默认值输出
>>> k={'name':'zx','age':'18'}
>>> print(k.setdefault('name','zhangxun'))
zx
>>> print(k.setdefault('address','Beijing'))
Beijing
>>>

keys 获取keys

>>> k={'name':'zx','age':'18'}
>>> print(k.keys())
['age', 'name']
>>>

values 获取值

>>> k={'name':'zx','age':'18'}
>>> print(k.values())
['zx', '18]
>>>

iteritems

这种调用方法更加节约资源,推荐使用

k={‘name’:’zx’,’age’:’18’}
for x,y in k.iteritems() :
… print(x,y)

(‘age’, ‘18’)
(‘name’, ‘zx’)

pop 删除key值

>>> k={'name':'zx','age':'18'}
>>> k.pop('name')
'zx'
>>> print(k)
{'age': '18'}
>>>

字典的高级操作

list 加入字典

>>> l = ['a', 'b', 'c', 'd']
>>> m = {}          //空字典可以用dict代替
>>> n = m.fromkeys(l, 111)         //n=dict.formkeys(l, 111)
>>> print(n)
{'a': 111, 'c': 111, 'b': 111, 'd': 111}
>>>

zip 叠加合并

>>> l1 = ['a', 'b', 'c', 'd']
>>> l2 = ['1', '2', '3', '4']
>>> m = zip(l1,l2)
>>> print(m)
[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]
>>>
两个list合并成字典
>>> l1 = ['a', 'b', 'c', 'd']
>>> l2 = [1, 2, 3, 4]
>>> m = dict(zip(l1,l2))
>>> print(m)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>

update 将一个字典补充到另一个字典

>>> k={'name':'zx','age':'18'}
>>> m = {'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>> k.update(m)
>>> print(k)
{'a': 1, 'c': 3, 'b': 2, 'name': 'zx', 'age': '18', 'd': 4}
>>>
体会一下这个例子
>>> k={'name':'zx','age':'18'}
>>> m = {'a': 1, 'c': 3, 'b': 2, 'd': 4, 'name': 'zx'}
>>> k.update(m)
>>> print(k)
{'a': 1, 'c': 3, 'b': 2, 'name': 'zx', 'age': '18', 'd': 4}
>>>

对字典进行排序

mm = {‘a’:1,’c’:2,’b’:4,’d’:3 }
print sorted(mm.iteritems(), key = lambda d: d[0], reverse = False) //d[0]以key进行排序 d[1]以value进行排序
[(‘a’, 1), (‘b’, 4), (‘c’, 2), (‘d’, 3)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值