python--序列

包含了大部分的序列的操作和函数

序列中+和*的操作和is,in函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# +的操作
i = (1,2,3)
i = i + i # (1,2,3,1,2,3)
a = (1,2,3)
id(a) #1440589908416
a += a 
id(a) #1440589908416
#发现两次的id是一模一样的,说明变量(对象)的id是固定的,不管对它进行什么样的加法运算!

# *的操作
i = i * 2 # (1,2,3,1,2,3)
a = (1,2,3)
id(a) #1440589908416
a *= a 
id(a) #1440512989913
#发现这两次的id并不相同。

#加法和乘法结果的id值并不相似,为此,python推出了is和is not 函数来判断两个对象是否是相同的
x = "dgz"
y = "dgz"
x is y #true,说明x和y是相同的对象
a = [1,2,3]
b = [1,2,3]
a is b #false,说明a和b不是相同的对象

#in和not in函数,比如我们想知道字符串"dgz"里面是否含有"d"字符,我们可以使用:
"d" in "dgz" #true
"d" not in "dgz" #false

删除对象

1
2
3
4
5
6
7
8
9
10
11
12
13
#删除全部对象
x = 12
y = [1,2]
del x,y #我们会发现对象x和y全部不见了!
print(x) #error,此时会报错

#删除数组里面的部分对象
x = [1,2,3,4,5]
del x[1:4] #x = [1,5]最后一个是能取到的,左闭右开

#删除数组所有内容,但是保留着数组的变量对象
x = [1,2,3,4]
del x[:] 或 del x[::] 或 del x[::1]

函数:list()、tuple()、str()

1
2
3
4
5
6
7
8
9
10
11
#list() 将可迭代对象或者元组,数组等等变成列表
x = "denggaozheng"
x.list() #['d','g',...,'g']

#tuple() 将可迭代对象或者数组变成元组
x = (1,2,3,4,5)
x.tuple()

#str() 将可迭代对象等转换成字符串
x = (1,2,3,4)
x.__str()__ #[1,2,3,4]字符串类型的

函数:max()和min()

1
2
3
4
5
6
7
8
9
#都知道min找最小值,max找最大值,那就举一些极端的例子

#如果传入的数组是空的,那么找最小最大的时候会报错的
s = []
min(s) #error

#min max函数都可以传入默认值default
s = []
min(s,default = "啥都没有!")

函数:sum()、len()

1
2
3
4
5
6
7
8
9
10
11
#sum() 用于求和,可以设定求和开始的位置,比如我从一百开始加s这个数组
s = [1,2,3,1,2]
sum(s,start = 100) #100+1+2+3+1+2=109
#如果start=100报错,那就直接sum(s,100)

#len() 方法返回对象(字符、列表、元组等)长度或项目个数
str = "runoob"
len(str) #6
 
l = [1,2,3,4,5]
len(l) #5

函数:sorted()和reversed()

1
2
3
4
5
6
7
8
9
10
11
12
13
#传什么参数给sorted()他都可以操作!
#sorted()返回的是一个全新的列表(对参数列表进行排序之后得到的新列表),而原列表不会发生改变。
s = [1,4,2,5]
sorted(s) #[1,2,3,4]
print(s) #[1,4,2,5]
#sort会对原先的列表进行修改
s.sort() #[1,2,4,5]
#sorted还可以进行翻转操作
sorted(s,reverse = true)

#reversed返回的是迭代器,参数里面可以放数组元组等等
a = range(5, 9)
list(reversed(a)) #[5,6,7,8,9]

函数:all()和any()

1
2
3
4
5
6
#all函数判断可迭代对象中是否所有元素的值都为真,其中0是假
a = [1,2,0]
all(a) #false
#any函数判断可迭代对象中是否存在为真的值,其中0是假
a = [0,0,1]
any(a) #true

函数:enumerate()

1
2
3
#enumerate函数用于将一个可遍历的数据对象(列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,加入start表示下标开始的位置。一般用在 for 循环当中,通常与list函数搭配使用。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons, start=1)) #[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

函数:zip()常用!!

1
2
3
4
5
6
7
8
9
10
11
12
13
#zip函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)     # 打包为元组的列表 [(1, 4), (2, 5), (3, 6)]
zip(a,c)              # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)]
zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]
#拓展:如果长的数组和短的数组进行zip,而我们不想按最短的来匹配,可以导入itertools
import itertools
a = [1,2,3,4,5,6,7]
b = [1,2,3,4]
it = itertools.zip_longest(a,b)
print(list(it)) #[(1, 1), (2, 2), (3, 3), (4, 4), (5, None), (6, None), (7, None)]

函数:map()常用!!和filter函数、iter函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#map函数会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次function 函数返回值的新列表。默认返回的是迭代器:<map object at 0x000001289EC93490>,但是使用list函数可以让他变成数组。
#先定义一个函数fun
def fun(x):
    x = x + 1
s = [1,2,3,4,5]
list(map(fun,s)) #[2,3,4,5,6]

#map函数传递的是包含计算结果的数,而filter函数传递的是计算结果为真的数(就没有0了)。
#例如我现在想要找到下面字符串中的大写字符
strn = "DengGaoZheng"
filter(str.isupper,strn) #['D',"G",'Z']

#iter函数:把一个可迭代对象变成迭代器
x = [1,2,3]
y = iter(x) #这时候y就是一个迭代器啦!
#使用next函数可以将迭代器y中的元素逐一取出来!
next(y) #1
next(y) #2
next(y) #3
next(y) #当我们拿完了迭代器里面的元素,再使用next的时候就会报异常!我们还可以自定义报异常的值,在next的第二个参数
next(y,"已经没了!") #已经没了!

迭代器,迭代对象

首先要知道一个迭代器一定是一个迭代对象!

区别是:迭代对象是可以反复使用的,而迭代器是一次性的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值