python学习笔记(2)--《python基础教程》第2、3章内容总结

python有6中内建序列,分别为:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。序列属于容器的一种,另一种主要的容器是字典。
一、下面介绍通用序列操作:
1.索引序列中所有元素从左向右编号为:0、1、2...... 从右向左为-1、-2、......、0 索引时用方括号:[ ]在输入时也可用索引,这时输入返回的结果就是索引号指示的值(输入字符串长度要大于索引号)
2.分片
形式:[L:R:S]
L和R代表索引号,S代表步长,默认为1,可为正为负,若为正,应有L<R;若为负,应有L>R
3.序列相加实为拼接,要是同类型的序列(都是字符串或者都是元组等等)
4.乘法序列乘以一个数字,与拼接类似
5.in运算符返回布尔值,判断一个对象是否为序列中的一个元素
6.len、max、min属于内建函数,分别返回序列中元素数量、元素最大值、最小值
二、列表特点:可改变列表的内容
1.list函数(类型) 利用list创建列表

<span style="font-family: Arial, Helvetica, sans-serif;">>>>> list('hello world')</span>
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list(['hello'])
['hello']
>>> 

2.赋值

利用索引

3.删除

del 可删除指定的某一范围内的值

4.分片赋值

可以使用与原序列不等长的序列将分片替换,而一次一个赋值不可改变原序列长度,即不能为一个位置不存在的元素进行赋值

分片赋值可以执行替换、插入、删除操作

5.列表方法

方法是一个与某些对象(列表、字符串、数字等等)有紧密联系的函数

调用方法:对象.方法(参数)

append:列表末尾追加新的对象,可以用分片赋值代替

>>> num=[1,2,3]
>>> num.append(4)
>>> num
[1, 2, 3, 4]
>>> num[4:4]=[5]
>>> num
[1, 2, 3, 4, 5]
>>> 

count:统计元素出现的次数

extend:扩展序列,类似于序列相加,但是不同点是extend会修改被扩展的序列

index:索引,从列表中找出某个值第一个匹配项的的索引位置,如果找不到,会引发一个异常

insert:插入,可以用分片赋值代替

pop:移出列表中的元素(默认是最后一个),和append类似于出栈、入栈操作;也可以模拟队列操作,但是要用pop(0);会返回移除的值

remove:移除列表中某个值的第一个匹配项,无返回值

reverse:反向存放列表中的元素

sort:直接对原序列进行排序,无返回值;与sorted函数的不同:sorted返回对序列排序后的结果,而原序列并未改变

>>> num
[1, 2, 3, 100, 5]
>>> y=sorted(num)
>>> y
[1, 2, 3, 5, 100]
>>> num
[1, 2, 3, 100, 5]

>>> y=num.sort()
>>> y
>>> num
[1, 2, 3, 5, 100]
>>> 

sort还可以包含参数:

>>> num
[1, 1000, 3, 5, 100]
>>> num.sort(reverse=True)
>>> num
[1000, 100, 5, 3, 1]
>>> 
表示进行反向排序

>>> string=['hello','hel','lo']
>>> string.sort(key=len)
>>> string
['lo', 'hel', 'hello']
>>> 
表示按照元素的长度进行排序

三、元组

特点:内容不可修改

1.创建方法

用逗号分割一些值,就自动创建了元组;如果就一个值,也要加逗号

2.tuple函数(类型)

会把一个序列作为参数转换为元组,如果参数本身为元组,那么原样返回

3.索引、分片参考列表

四、字符串

特点:内容不可变

1.格式化

字符宽度:转换后的值最小字符个数

精度:结果中应包含的小数位数(对于数字转换来说);转换后的值所能包含的最大字符个数(对于字符串转换来说)。两者通过“.”分割。可以使用“*”作为宽度和精度,此时数值会从元组参数中读出

“-”表示左对齐;“+”表示结果中标识出符号;“ ”表示正数前加空格

2.字符串方法

find:查找字符串;尅提供查找范围,左闭右开

join/split:前者合并,后者分割

>>> dirs='','usr','bin','env'
>>> print('c:'+'\\'.join(dirs))
c:\usr\bin\env

>>> '1+2=43+3+4'.split('+')
['1', '2=43', '3', '4']

replace:用一个字符串代替某一个字符串的所有匹配项

>>> 'hello world'.replace('lo','fdjks')
'helfdjks world'

strip:去掉字符串两端的空格

translate、maketrans:用maketrans设置转换表,用translate进行转换

>>> temp='hello world'
>>> table=temp.maketrans('hel','qwy')
>>> temp.translate(table)
'qwyyo woryd'
>>> 

和replace方法一样,但有时比replace效率更高

五、字典

类似于C++中的map

1.dict函数(类型)

通过键值对创建:

>>> items=[('name','John'),('age',13)]
>>> d=dict(items)
>>> d
{'name': 'John', 'age': 13}
>>> 

通过关键字创建(关键字不用加引号)

>>> temp=dict(name='John',age=18)
>>> temp
{'name': 'John', 'age': 18}
>>> 

2.字典具有自动添加功能,如果键刚开始不存在,也可以为它分配一个值

>>> temp={'x':13}
>>> temp['y']=90
>>> temp
{'x': 13, 'y': 90}
>>> 

3.查找键是否存在字典中,用in

4.格式化,%后加上键

>>> data={'Anna':{'addr':'XXX','phone':'012345'}}
>>> "Anna's addr is %(addr)s." % data['Anna']
"Anna's addr is XXX."
>>> 

5.清空字典,用clear

下面这种方法清空字典无效:

>>> x={'a':1,'b':2}
>>> y=x
>>> x={}
>>> x
{}
>>> y
{'a': 1, 'b': 2}
>>> 

原因是语句x={},仅是让x指向了另一个值,而以前所指向的内容(即y现在所指向的)并未改变;是不是有些像指针呢?

用clear就可以,清空的是指向的内容,而x、y指向的是同一个内容

>>> x={'a':1,'b':2}
>>> y=x
>>> x.clear()
>>> y
{}
>>> 
对于列表也是如此

6.copy(方法),deepcopy(函数)

>>> from copy import deepcopy
>>> d={'names':['Alfred','Bertrand']}
>>> c=d.copy()
>>> dc=deepcopy(d)
>>> d['names'].append('John')
>>> c
{'names': ['Alfred', 'Bertrand', 'John']}
>>> dc
{'names': ['Alfred', 'Bertrand']}
>>> 

copy是浅复制,deepcopy是深复制

对于copy,如果副本被修改(不是值的替换,修改是例如添加、删除的操作),那么原始数据也替换,而deepcopy不会;反过来,修改原始数据对副本的影响也是如此

7get方法,两个参数,第二个默认为None,与普通查询一样

但是若通过普通查询访问一个不存在的项,那么会出错,而对于get不会,然而get不会自动添加不存在的键(因为get是获取),并分配值:

>>> temp={'x':12,'y':13}
>>> print(temp['z'])
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    print(temp['z'])
KeyError: 'z'
>>> print(temp.get('z',100))
100
>>> temp
{'x': 12, 'y': 13}
>>> 

8.items方法将所有的字典项以列表方式返回,列表项中的每一项都来自于(键,值)

9.pop和popitem

pop移除指定的项,参数是键;popitem随机“弹出”一项

10.setdefault

与get类似,但是当键不存在时,可以设定相应的键值,默认为None

11.update

a.update(b),用b更新a,即将b中的项添加到a中,相同的键会被b中的覆盖

12.values

以列表形式返回值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python学习笔记》是由皮大庆编写的一本关于Python语言学习的教材。在这本书,作者详细介绍了Python语言的基础知识、语法规则以及常用的编程技巧。 首先,作者简要介绍了Python语言的特点和优势。他提到,Python是一种易于学习和使用的编程语言,受到了广大程序员的喜爱。Python具有简洁、清晰的语法结构,使得代码可读性极高,同时也提供了丰富的库和模块,能够快速实现各种功能。 接着,作者详细讲解了Python的基本语法。他从变量、数据类型、运算符等基础知识开始,逐步介绍了条件语句、循环控制、函数、模块等高级概念。同时,作者通过大量的示例代码和实践案例,帮助读者加深对Python编程的理解和应用。 在书,作者还特别强调了编写规范和良好的编程习惯。他从命名规范、注释风格、代码缩进等方面指导读者如何写出清晰、可读性强的Python代码。作者认为,良好的编程习惯对于提高代码质量和提高工作效率非常重要。 此外,作者还介绍了Python的常用库和模块。他提到了一些常用的库,如Numpy、Pandas、Matplotlib等。这些库在数据处理、科学计算、可视化等领域有广泛的应用,帮助读者更好地解决实际问题。 总的来说,《Python学习笔记》是一本非常实用和全面的Python学习教材。通过学习这本书,读者可以系统地学习和掌握Python编程的基础知识和高级应用技巧,为以后的编程学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值