Python入门笔记3

1.可变字符串
修改字符串中的值,智能创建新的字符串
io.StringIO或array

>>> s="hello.sxt"
>>> import io
>>> sio=io.StringIO(s)
>>> sio
<_io.StringIO object at 0x00000230D228F0D8>
>>> sio.getvalue()
'hello.sxt'
>>> #看sio的值
>>> sio.seek(7)
7
>>> sio.write("g")
1
>>> sio.getvalue()
'hello.sgt'
>>> 

2…基本运算符
见笔记
Python不支持自增和自减
a+=1
实际使用中,复杂的表达式要用小括号组织
位运算符>比较运算符>幅值运算符>逻辑运算符

第三章 序列

字符串 列表 元组 字典 集合
列表 常用方法见笔记
1.列表的创建
[]
list() :通常将可迭代的数据转化成列表

>>> a=[20,56,'jjio','数']
>>> a[3]
'数'
>>> ##从0开始
>>> a=[]##创建空列表
>>> b=list(gaoqi)
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    b=list(gaoqi)
NameError: name 'gaoqi' is not defined
>>> b=list('gaoqi')
>>> b
['g', 'a', 'o', 'q', 'i']
>>> a=range(10)
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 
>>>> a=range(10)
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 
>>> 
>>> a=range(10)
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range():创建整数列表
range([start,] end [,step])

>>> a=range(10)
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0,10,1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(2,30,3))
[2, 5, 8, 11, 14, 17, 20, 23, 26, 29]
>>> list(range(20,3,-1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>>> list(range(-10,-50,-6))
[-10, -16, -22, -28, -34, -40, -46]

推导式生成列表,重点和for循环一起使用

>>> a=[x*2 for x in range(5)]
>>> a
[0, 2, 4, 6, 8]
>>> 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]

2.列表元素的增加和删除
append() :直接在列表尾部添加新元素,速度最快,推荐使用

>>> a=[20,50]
>>> a.append(66)
>>> a
[20, 50, 66]

+运算符:直接拼接,会产生新对象 不建议使用

>>> a=a+[30]
>>> a
[20, 50, 66, 30]

extend()
:将目标列表添加尾部,不创建新的列表对象

>>> a=[20,50]
>>> a.extend(['jj',50])
>>> a
[20, 50, 'jj', 50]

insert()插入元素:将指定元素插入到列表对象的任意制定位置,不建议使用。在中间操作的还有 remove() pop() del()

>>> a=[10,20,30]
>>> a.insert(2,'gg')
>>> a
[10, 20, 'gg', 30]

乘法扩展:生成新列表,重复原列表

>>> a=['ddeed',555]
>>> b=a*5
>>> b
['ddeed', 555, 'ddeed', 555, 'ddeed', 555, 'ddeed', 555, 'ddeed', 555]
>>> 

3.列表元素的删除
del() 删除列表制定位置的元素,在中间

>>> a=[20,30,50,4]
>>> del a[0]
>>> a
[30, 50, 4]

pop() 删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素

>>> a=[2,5,6,2,22,66]
>>> a.pop()
66
>>> a
[2, 5, 6, 2, 22]
>>> a.pop(0)
2
>>> a
[5, 6, 2, 22]

remove() 删除首次出现的指定元素,若不存在该元素,异常

>>> a=[55,2,556,33,5,2,444]
>>> a.remove(2)
>>> a
[55, 556, 33, 5, 2, 444]

4.列表元素的访问和计数
通过索引直接访问元素
imdex()获得指定元素在列表中首次出现的索引

index(value,[start],[end])
count()获得指定元素在列表中的次数
len()返回列表的长度,即列表的元素
成员资格的判断
可以用count(),一般没人用
也可用in
5.切片操作
slice 快速提取子列表或修改
[起始偏移量 start:终止偏移量 end [:步长step]]
典型操作见笔记

>>> a=[10,20,30,40,50,60]
>>> a[:]
[10, 20, 30, 40, 50, 60]
>>> a[1:3:1]
[20, 30]
>>> #包头不包尾
>>> a[1::2]
[20, 40, 60]
>>> a[1:]
[20, 30, 40, 50, 60]
>>> a[:2]
[10, 20]
>>> a[:-3]
[10, 20, 30]
>>> a[-3:]
[40, 50, 60]
>>> a[::-1]
[60, 50, 40, 30, 20, 10]
>>> 

6.列表的遍历

>>> for x in a:
	print(x)

	
10
20
30
40
50
60
>>> 

7.列表的排序
修改原列表,不建新列表的排序

>>> a=[5,52,66,6,5,47,1,0,23]
>>> a.sort()#升序
>>> a
[0, 1, 5, 5, 6, 23, 47, 52, 66]
>>> a.sort(reverse=True) #降序
>>> a
[66, 52, 47, 23, 6, 5, 5, 1, 0]
>>> import random
>>> random.shuffle(a) #随机排列
>>> a
[1, 23, 5, 6, 5, 0, 52, 47, 66]
>>> 

建新列表的排序
sorted()

>>> a=sorted(a)
>>> a
[0, 1, 5, 5, 6, 23, 47, 52, 66]

其他同理
reversed()返回迭代器,也支持返回逆序排列,只能用一次
返回逆序

>>> a[::-1]
[66, 52, 47, 23, 6, 5, 5, 1, 0]
>>> c=reversed(a)
>>> c
<list_reverseiterator object at 0x0000013AE7D34EC8>  #返回迭代器
>>> list(c)
[66, 52, 47, 23, 6, 5, 5, 1, 0]

列表相关的其他内置函数
见笔记
8.多维列表

>>> a=[
	["高小一",18,30000,"北京"],
	["高小二",19,50000,"深圳"],
	["高小三",20,6000,"上海"],
	]
>>> a[0]
['高小一', 18, 30000, '北京']
>>> a[0][3]
'北京'
>>> 
a=[
	["高小一",18,30000,"北京"],
	["高小二",19,50000,"深圳"],
	["高小三",20,6000,"上海"],
	]
for m in range(3):
    for n in range(4):
        print(a[m][n],end='\t')
    print()

高小一 18 30000 北京
高小二 19 50000 深圳
高小三 20 6000 上海
9.元组 tuple
元组为不可变序列,不能修改元组中的元素,,用法参考list
创建、删除、访问、计数

>>> a=(5,6,88)
>>> a=5,6,88
>>> a=(20,)
>>> #元组用小括号,可以不加,只有一个对象时,末尾加“
>>>  #元组用小括号,可以不加,只有一个对象时,末尾加,
>>> c=tuple()
>>> b=tuple("abc")
>>> b=tuple(range(4))
>>> b
(0, 1, 2, 3)
>>> b=range([5,6,7])
Traceback (most recent call last):
  File "<pyshell#54>", line 1, in <module>
    b=range([5,6,7])
TypeError: 'list' object cannot be interpreted as an integer
>>> b=tuple([5,6,8])
>>> b
(5, 6, 8)
>>> 
>删除
>>>> del b
>>> b

元组的元素访问和计数
与list一样

>>> a=(3,5,9,7,5)
>>> a[2]
9
>>> a=tuple("jiealkgjaealjgdiaea")
>>> a
('j', 'i', 'e', 'a', 'l', 'k', 'g', 'j', 'a', 'e', 'a', 'l', 'j', 'g', 'd', 'i', 'a', 'e', 'a')
>>> a[1:10]
('i', 'e', 'a', 'l', 'k', 'g', 'j', 'a', 'e'
>>>

排序 只能使用 sorted(),生成新的列表

>>> a=(20,5,6,9,41,)
>>> sorted(a)
[5, 6, 9, 20, 41]
>>> 

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

>>> a=[10,20,30]
>>> b=[1,2,3]
>>> c=[4,5,6]
>>> d=(a,b,c)
>>> list(d)
[[10, 20, 30], [1, 2, 3], [4, 5, 6]]
>>> 

10.生成器推导式创建元组
参照列表推导式,使用小括号
也可以使用对象的_ next _()方法遍历,或者直接作为迭代器对象来使用

>>> s=(x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000024F7093A948>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s)
[]
>>> ##只能访问一次元素,第二次为空,需要再生成一次
>>> 
>>> s=(x*2 for x in range(5))
>>> s.__next__()
0
>>> s.__next__()
2
>>> s.__next__()
4
>>> s.__next__()
6
>>> s.__next__()
8
>>> s.__next__()
Traceback (most recent call last):
  File "<pyshell#91>", line 1, in <module>
    s.__next__()
StopIteration##空了
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值