python 可变序列与不可变序列的方法及其应用

序列

序列的通用操作

相连接 +      k1=[1,2,3],k2=[4,5,6]  k1+k2=[1,2,3,4,5,6]

重复   *        k1=[1,2,3]     2*k1=[1,2,3,1,2,3]     n*k 就是在k的后面添加n-1遍k中的元素

获取指定下标的元素      k[n]     返回下标为n  的值

获取指定下标范围内的元素   k[a:b]   返回下标a到b-1 的元素  一共b-a个

获取指定下标范围内步长为n的元素   k[a:b:n]   返回下标为a,a+n,a+2n,...<b 的元素

一些方法

              k.len()             返回k的长度

              k.min()            返回k中最小的数

              k.max()           返回k中最大的数

              k.sum()           返回k的元素和

              k.index(x)       返回第一个x的下标

              k.count(x)       返回x在k中出现的次数

可变序列

改变单个元素的值:

              可以通过k[n]=x   该表下标为n 的列表元素的值。

改变一个指定范围内的元素的值:        

              k[a:b]=[100] 可以把列表k中下标a到b-1的所有元素变成一个,即100

              k[a:b]=[c,d,e,,f...] 可以把列表k中下标a到b-1的所有元素变成等号右边的[]里面的元素若右边长度比b-a长则s会相应边长

              k[a:b:n]=[x,y,z...(一共(b-1)//n 个元素)]  a,b不能省略除非a=0,b=-1等号右边必须是(b-1)//n个元素

  删除元素

              del k[n]    删除下标为n的元素

              del k[a:b]    删除下标从a到b-1的元素

              del k[a:b:n]    删除下标从a,a+n,a+2n...<b的元素

追加元素   k.append(x)  在k的最后增加一个x元素, x可以为数,字符串,列表,元组。

扩展序列   k.extend([a,b,c...]) 将[]中 的元素添加到k的末尾

插入元素   k.insert(i,x)      在下标为i的位置插入一个x元素   原元素从i起 后移一位

检索并且删除特定的元素    k.pop()    返回k的末尾元素  ,并删除末尾的元素

反转序列           k.reverse()   返回k 的反序序列

复制序列           一 序列k1,k2    k1=k2     此时k1和k2的元素相同,但是改变任意一个序列的一个元素,另一个都会跟着改变

                          二 k1=k2[:]          此时k1与k2的元素也相同,但是改变k1或者k2的值不影响对方的值

                          三 k1=k2.copy()   k1的元素也与k2相同,并且两个序列的改变互不影响

 

列表序列

声明方式 k=[]

               k=[1,2,3,'dada',[1,2]]

               k=list(range(0,5))             //list(x)  x为要转换成列表的元组

拥有一般的序列的所有通用操作

特有的     

排序      k.sort()  将k的元素从小到大排序若想从大到小排序则要 写成  k.sort(reverse=True)         k本身的值会被排序

              sorted(k)   返回k排序后的值  但是k本身不会改变

不可变序列

元组

元组不具备可变序列的性质比如,改变元素的值,删除元素等等但是可以使用sorted(函数),返回的是列表,不改变原元组

元组的声明: t=(1,2,1,3,2) 

                       t=(1,)若写成 t=(x)此时t不是元组类型的,而是x的类型

                       t=1,12,34,5   不加括号也可以

                       t=tuple(range(0,5))
               

range()

同样也可以使用sorted()函数进行排序,但是不能使用其他可变序列的方法,功能

range 的声明  

                    k=range(a,b)  k的元素为a到b-1;共b-a个

                    k=range(a,b,n) k的元素为a,a+n,a+2n,...<b  

 

string

字符串也是一种不可变序列 ,具备序列的基础操作,不可以用sum(),del,也不能排序

定义字符串:

s='string'

当字符串的值很长,要分行时

s='''

大长段内容

'''

string的相关方法

s.replace('x','z')把所有的x都替换成z
s.capitalize()把所有首字母改成大写
s.upper()把所有字母改成大小
s.lower()把所有首字母改成小写
s.startwith('x')判断首字母是否为'x' 返回bool值,若是返回True,不是则返回False
s.startwith('x')判断尾字母是否为'x' 返回bool值,若是返回True,不是则返回False
s.isnumeric()判断字符串s的内容是否为数字,若是返回True,不是则返回False
s.isalpha()判断字符串s的内容是否为字母,若是返回True,不是则返回False
s.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返

回 True,否则返回 False

s.strip('x')

截取s两边的指定字符

s.lstrip('x')截取s左边的指定字符
s.rstrip('x')截取s右边的指定字符
s.split('x')以x为分割符将字符串分割,返回一个列表,()里面无参数时返回的是一个只有一个元素的列表,这个元素为字符串s
'x'.join(k)以x为标记连接列表的每一个元素,返回字符串 

strip()实例:

str = "     this is string example....wow!!!     ";
print str.lstrip();
str = "88888888this is string example....wow!!!8888888";
print str.rstrip('8');

str = "88888888this is string example....wow!!!8888888";
print str.strip('8');

输出

this is string example....wow!!!
88888888this is string example....wow!!!

this is string example....wow!!!

split()实例:


>>>s='www.baidu.com'
>>> k=s.split('.')
>>> k
['www', 'baidu', 'com']
>>> type(k)
<class 'list'>

join()实例:

>>> k
['www', 'baidu', 'com']

>>> '.'.join(k)
'www.baidu.com'

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值