python新建文件夹range_python笔记(1)--序列(列表 元组 range)

一、序列分类

1、可变序列:list

2、不可变序列:tuple,range

二、序列公共操作方法

1、操作和返回值

其中s和t代表同类型序列;n,i,j,k为整数;x为任意类型。

序号

操作

结果

1

x in s

若序列s中包含x元素则返回True,否则返回False

2

x not in s

若序列s中不包含x元素则返回True,否则返回False

3

s + t

s和t拼接在一起

4

s*n(或n*s)

将s重复n次

5

s[i]

s中下标为i的元素(下标从0开始)

6

s[i:j]

s中下标从i到j-1的元素集合(下标从0开始)

7

s[i:j:k]

s中下标从i到j-1且间隔为K的元素集合(下标从0开始)

8

len(s)

s中元素个数

9

min(s)

s中最小的元素

10

max(s)

s中最大的元素

11

s.index(x[,i[,j]])

s中首次出现x的下标(i,j为下标范围限制)

12

s.count(x)

s中x的总个数

2、实例

2.1、x in s

s = [1,2,[3,4],'g']

x= 'g'a= [3,4]

b= 5

print(x in s,a in s,b in s)

Ture Ture False

2.2、x not in s

s = [1,2,[3,4],'g']

x= 'g'a= [3,4]

b= 5

print(x in s,a in s,b not in s)

True True True

2.3、s + t

s = [1,2,[3,4],'g']

t= ['5',6]

w= s +tprint(w)

[1, 2, [3, 4], 'g', '5', 6]

当t与s类型不一致时会抛出TypeError异常

s = range(2,9)

t= [1,3]

w= s +tprint(w)

Traceback (most recent call last):

File"E:/pythoncode/新建文件夹/sf.py", line 3, in w= s +t

TypeError: unsupported operand type(s)for +: 'range' and 'list'

2.4、s*n(或n*s)

s = ['a',3,4]

n = 3

w= s*n

print(w)

['a', 3, 4, 'a', 3, 4, 'a', 3, 4]

当n小于或等于0时,s*n是空序列

s = ('a',3,4)

n= -1w= s*nprint(w)

()

2.5、s[i]

s = ['a',3,4]print(s[0],s[2])

a 4

当i小于0时,表示下标为len(s)+i的元素,即倒数第|i|个

s = ('a',3,4)print(s[-1],s[-3])

4 a

2.6、s[i:j]

s = ['a',1,2,3,4]

w= s[1:3]

t = s[1:-1]print(w,t)

[1, 2] [1, 2, 3]

当i,j省略时代表s本身

s = ['a',1,2,3,4]

w=s[:]print(w)

['a', 1, 2, 3, 4]

2.7、s[i:j:k]

s = ['a',1,2,3,4,5,6,7,8,9]

w= s[1:7:2]

t = s[::-1]#将s中元素倒序装入t中,注意s本身不变print(w,t)

[1, 3, 5] [9, 8, 7, 6, 5, 4, 3, 2, 1, 'a']

2.8、len(s)

s = ['a',1,2,3,4]print(len(s))

5

2.9、min(s)

s = [1,2,3,4]print(min(s))

1

2.10、max(s)

s = [1,2,3,4]print(max(s))

4

使用min(s)和max(s)函数时,序列s中元素类型必须一致,否则会抛出TypeError异常

s = [1,2,3,'4']print(min(s))

Traceback (most recent call last):

File"E:/pythoncode/新建文件夹/sf.py", line 2, in

print(min(s))

TypeError:'

2.11、s.index(x[,i[,j]])

s = [1,2,3,4,1,2,3,1,2,9]print(s.index(1),s.index(2,2),s.index(2,2,10))

0 5 5

2.12、s.count(x)

s = [1,2,3,4,1,2,3,1,2,9]print(s.count(1))

3

三、可变序列公共操作方法

1、操作和返回值

其中s为可变序列,t为可迭代对象;n,i,j,k为整数;x为任意类型。

序号

操作

结果

1

s[i] = x

用x替换s中编号为i的元素,

2

s[i:j] = t

用t替换s中编号从i到j-1的元素

3

del s[i:j]

删除掉s中编号从i到j-1的元素,相当于s[i:j] = []

4

s[i:j:k] = t

s[i:j:k]对应的元素用t中元素代替,t中元素个数必须和切片中元素个数相同

5

del s[i:j:k]

删除切片s[i:j:k]对应的元素

6

s.append(x)

在s尾部添加x,相当于s[len(s):len(s)] = [x]

7

s.clear()

删除s中所有元素,相当于del s[:],s[:] = []

8

s.copy()

复制s中所有元素,相当于s[:]

9

s.extend(t) or s += t

用迭代对象t来扩展s,相当于s[len(s):len(s)] = t

10

s *= n

用s重复n次的结果更新s

11

s.insert(i,x)

将s中编号为i的位置插入x,相当于s[i:i] = [x]

12

s.pop([i])

返回编号为i的元素,并将其从s中移除,默认为最后一个元素

13

s.remove(x)

移除s中第一个x

14

s.reverse()

将s中元素顺序颠倒,s本身变化,无返回值

四、列表

python中的列表和c语言中数组是有区别的,列表中元素类型可以是不同的,而c语言数组元素类型必须一致。

1、构造列表四种方法

空列表:[]

直接填充每个元素:[a,b,c]

使用循环:[x for x in iterable]

使用函数:list() 或者 list(iterable)

2、构造列表实例

#构造空列表b,输出b和b的类型

b =[]print(b,type(b))

#结果

[]

#直接填充每个元素

b = [1,2,'r','logan']print(b,type(b))

#结果

[1, 2, 'r', 'logan']

#利用循环

s = (1,'f',3,5)

b= [x for x ins]print(b,type(b))

#结果

[1, 'f', 3, 5]

#利用函数

s = (1,'f',3,5)

a=list()

b=list(s)print(a,type(a),b,type(b))

#结果

[] [1, 'f', 3, 5]

3、争对列表的操作方法:sort(key=None,reverse=False)

#列表的sort()函数

s = [1,6,3,2]

t=s.sort()print(s,t)

#结果,t为None说明sort()函数无返回值,是在原列表上进行排序的(sorts the list in place),不会生成新列表

[1, 2, 3, 6] None

#带参数key的排序,key接收一个函数,默认按key从小到大排序,加上reverse=True结果反转,下面例子按元素绝对值从小到大,和从大到小排序

defhe(x):returnabs(x)

s= [1,5,3,-2,-8]

s.sort(key=he)print(s)

s.sort(key=he,reverse=True)print(s)

#结果

[1, -2, 3, 5, -8]

[-8, 5, 3, -2, 1]

#可以利用匿名函数,下面例子等价于上面的按绝对值从小到大排序

s = [1,5,3,-2,-8]

s.sort(key=lambdax:abs(x))print(s)

#结果

[1, -2, 3, 5, -8]

#如果key有多个参考条件(lambda函数有多个返回值),先按第一个参考条件排序,排序结果有同名次的再按第二个条件排序,否则就不再参考第二个条件

s = [1,5,3,-2,-8]

s.sort(key=lambda x:(x>0,abs(x)))print(s)

#结果[-2, -8, 1, 3, 5]

#解析

s序列经过lambda函数运算后会返回

s

1

5

3

-2

-8

x>0

True(1)

True(1)

True(1)

False(0)

False(0)

abs(x)

1

5

3

2

8

#先参考x>0条件,排序后s = [-2,-8,1,5,3],因为-2<0,-8<0,1>0,5>0,3>0所以-2和-8名次相同,1和5和3名次相同;再参考abs(x)条件,abs(-2)

五、元组

元组中值也可以是任意类型,使用整数索引,和列表的不同之处在于,元组不能被修改,元组决定因素是元素之间的逗号,而不是括号。

1、构造元组四种的方法

用一对括号表示空元组:()

一个元素的元组:a,  or  (a,)

多个元素用逗号分隔:a,b,c  or  (a,b,c)

使用内建函数tuple():tuple()  or  tuple(iterable)

六、range

range类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。

1、构造range的方法

range(stop)

range(start,stop[,step])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值