python学习手册(第4版) 第八章

上一章学习了关于字符串的操作,包括字符串的方法和格式化,字符串的切片方法,简单实用,格式化又分格式化表达式(%)和格式化方法(.format)两种。在python中,要充分使用dir()/help(),对内置函数或方法进行官方的认识。

现在第八章,主要学习列表和字典,都是可变对象,支持原地修改和头尾增删。

列表属于有序的集合,可以进行集合+/*(类似字符串的重复)/for(循环遍历)/in

>>>list1 = [1,2]

>>>list2 = [2,3]

>>>list1 + lsit2

[1,2,2,3]

>>>list1 * 2

[1,2,1,2]

>>>for i in list1:print(x,end=' ')

1 2

>>>2 in list1

True

列表的增加,使用append(增加的对象为单个对象到列表中)/extend(增加的对象为一个列表,实现两个列表进行+操作)/insert(传入索引和值,指定位置增加)

>>>list1.append(3)           #无返回,对象为单个对象

>>>list1

[1,2,3]

>>>list1.extend([1,2])         #无返回,对象为列表对象

>>>list1

[1,2,3,1,2]

>>>list2 = [1,2,3]

>>>list2.insert(1,4)               #无返回,须传入索引和值两个参数

>>>list2

[1,4,2,3]

列表的删除,使用pop(从尾部删除,不传参)/remove(指定对象删除)/del list1[X](指定索引进行删除)

>>>list1.pop()            #返回被删除的对象

2

>>>List1.remove(1)      #删除值为1,如果同时有多个存在,只删除索引最小的一个

[2,3,1,2]

>>>del list1[-1]               #无返回

>>>list1

[2,3,1]

列表的查找,使用索引和切片

>>>list1[0]

2

>>>list1[0:2}

[2,3]

列表的排序/反转/元素个数

>>>list2 = [1,3,4,2,3]

>>>list2.sort()          #无返回,不传参,实现列表自身升序排列

>>>list2

[1,2,3,3,4]

>>>list3 = [1,3,4,2,3]

>>>sorted(list3)       #与上一句效果类似,返回一个新的列表,而不是修改对象自身

[1,2,3,3,4]

>>>list2.reserve()          #无返回,不传参,实现列表自身的反转

>>>list2

[4,3,3,2,1]

>>>sorted(list3,reverse=True)       #相当于同时执行了sort()和reverse(),且返回一个新的列表,不修改对象自身

[4,3,3,2,1]

>>>list(reversed(list3))             #使用reversed将list3反转,类似reverse(),但使用时须加上list(),因为它是一个迭代器(?),返回反转后的结果

[3,2,4,3,1]

>>>list2.count(2)         #传入要查找的元素对象,返回对象个数

1

列表解析表达式

>>>list3 = [i**3 for i in range(3)]

>>>list3

[0,1,8]

>>>list4 = list(map(ord,'spam'))

>>>list4

[115,112,97,109]

>>>list5 = list(map(abs,[-1,-2,0]))

>>>list5

[1,2,0]


字典,属于无序的集合,需要通过键来取值,是一种支持快速检索的数据结构

字典的三种创建方法dict.fromkeys()/dict(zip())/dict()

>>>d1 = dict.fromkeys(['a','b'])         #新建一个字典,遍历列表并设置为键名,默认的值为None

>>>d1

{'a':None,'b':None}

>>>d2 = dict(zip(['a','b'],[1,2]))        #新建一个字典,遍历两个列表(两个列表长度不同时,以较短的列表长度为基准创建字典),分别作为键和值

>>>d2

{'a':1,'b':2}

取出字典的键.keys()/值.values()/键值对.items()

>>>d2.keys()          #返回字典的键,类型为dict_keys

dict_keys(['a','b'])

>>>d2.values()        #返回字典的值,类型为dict_values

dict_values([1,2])

>>>d2.items()       #返回字典的键值对,类型为dict_items

dict_items([('a',1),('b',2)])

字典的复制

>>>d2.copy()

{'a':1,'b':2}

字典属于无序的集合,也具有集合的一些合并update

>>>d1 = {'a':1,'c':1}

>>>d2 = {'a':2,'b':3}

>>>d1.update(d2)        #无返回,如果两个字典有相同的键,以第二个字典的值为准

>>>d1

{'a':2,'c':1,'b':3}

字典的删除pop(key)/del d1(key)

>>>d1.pop('b')        #返回这个键的值,如果键不存在则报错

3

>>>d1

{'a':2,'c':1}

>>>del d1['c']            #无返回,如果键不存在则报错

>>>d1

{'a':2}

字典新增,可以直接赋值

>>>d1['c'] = 4         #如果键不存在,则新建;如果存在,则更新值

>>>d1 

{'a':2,'c':4}

字典解析表达式

>>>d2 = {x:x**2 for x in range(3)}

>>>d2

{0:0,1:1,2:4}

>>>d2[2]              #字典的键可以为数字,但必须是不可变对象

4






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值