重拾python-2

可变字符串
在py中,字符串属于不可变对象,不支持原地修改,如果要改,只能创建新的字符串对象。但是如果要经常原地修改字符串,可以使用io.StringIO对象或者array模块。

>>> import io
>>> s = "hello, world"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x000001CE97950F70>
>>> sio.getvalue()
'hello, world'
>>> sio.seek(7)
7
>>> sio.write("#")
1
>>> sio.getvalue()
'hello, #orld'

运算符——位运算
& | ^ (按位与、按位或、按位异或)
<<、>> (位移)
~按位翻转
比较运算符可以连用,如:

>>>a=3
>>>0<a<9
True

位运算

>>> a=0b11001
>>> b=0b01000
>>> b=0b01000
>>> a
25
>>> c=a|b
>>> c
25
>>> bin(c)
'0b11001'
>>> bin(a^b)
'0b10001'

位移
左移1位相当于乘以2,左移两位相当于乘以4
右移1位相当于除以2

>>> a=3
>>> a<<2
12
>>> a=36
>>> a>>2
9

加号:
(1)数字相加->加法
(2)字符串->拼接
(3)列表、元祖->合并
乘法:
(1)数字
(2)字符串复制
(3)列表,元祖->复制
注:python不支持自增(++)和自减(–)

序列
python中一切皆对象列表对象常用方法总结

注:图片来自尚学堂·百战程序员

列表创建:[]
list()创建

a=list()
a = list(range(10))
a
[0,1,2,3,4,5,6,7,8,9]
range()创建整数列表:range()可以帮助我们非常方便地创建证书列表
range([start,]end[,step])
start:默认0
step:默认为1

推导式

a = [x*2 for x in rang(5)]
a
[0,2,4,6]
 
a=[x*2 for x in range(100) if (x%9==0)]
a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

元素的五种添加方式
append():原地添加,尾部添加,效率最高
+运算:不是原地添加,而是创建新的列表对象,将原来的列表对象赋给新的列表对象
extend():原地扩展,不涉及到创建新的对象,效率高
insert():插入到任意位置,设计数组的移动拷贝,尽量避免大量使用
乘法扩展:复制的过程。

元素删除:
del删除,实际上也是数组的拷贝覆盖
del删除
pop()方法:
删除并返回指定位置元素,如果未指定位置,则默认最后一个
remove()方法:删除首次出现的指定元素,若不存在啊,抛出异常
列表元素访问和计数
通过索引直接访问
index()获得指定元素在列表中首次出现的位置
count()获得指定元素出现的次数
成员资格判断
in:判断指定元素是否在列表里(如 20 in a)

切片操作slice
[start:end[:step]] start、end左闭右开

>>> a=[10,20,30,40,50,60]
>>> a[:]
[10, 20, 30, 40, 50, 60]
>>> a[1:3]
[20, 30]
>>> a[1::2]
[20, 40, 60]
>>> a[:2]
[10, 20]
>>> a[::-1]
[60, 50, 40, 30, 20, 10]
>>> a[-1:-4:-2]
[60, 40]

列表排序
修改原列表,不建新列表的排序:sort
a.sort() #默认是升序排序
a.sort(reverse = True) #降序排序

import random
random.shuffle(a) #打乱排序

新建列表的排序:sorted()
返回新列表,不对原列表做修改

reversed()返回迭代器
逆序排序,不对原列表做任何修改,返回逆序排列的迭代器对象

max()、min()
sum()

多维列表
二维列表[[],[],[],[]]

>>> a=[["张三",20,123],["李四",12,124],["王五",31,144]]
>>> a[1]
['李四', 12, 124]
>>> a[0][2]
123

元祖 tuple
不可变序列,不能修改元祖中的元素(增、删、改)
可以进行的操作:
索引访问、切片操作、连接操作、成员关系操作、比较运算、计数(len() max() min() sum() )
创建:通过()创建

>>> a
(10, 20, 30)
>>> type(a)
<class 'tuple'>
>>> b=(20)
>>> type(b)
<class 'int'>
>>> b=(30,)
>>> type(b)
<class 'tuple'>
>>> c=tuple()
>>> c
()
>>> b = tuple("abcd")
>>> b
('a', 'b', 'c', 'd')
>>> del b

元祖元素的访问

>>>a=(1,2,3)
>>>a[0]
1

sorted(tupleObj)返回新的列表对象

zip(列表1,列表2,…):将多个列表对应位置的元素合成为元祖,并返回zip对象

>>> a=[1,2]
>>> b=[0,1]
>>> c=[4,5]
>>> d = zip(a,b,c)
>>> d
<zip object at 0x000001CE97985140>
>>> list(d)
[(1, 0, 4), (2, 1, 5)]

生成推导式创建元祖
与列表类似,元祖用小括号
返回的不是列表、元祖,而是生成器对象
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值