Python序列方法整理

序列通用操作:

  1、判断数据是否存在与欲裂中:   x(元素)  in s(序列)         ||  x(元素) not in s(序列)

>>> num=[1,2,3,4,‘tom‘,‘jack‘,‘marry‘]
>>> ‘tom‘ in num
True
>>> ‘marry‘ not in num
False

  2、连接序列  : s1(序列)+s2(序列)

    

>>> num1=[1,2,3,4]
>>> num2=[‘tom‘,‘marry‘,‘jack‘]
>>> num1+num2
[1, 2, 3, 4, ‘tom‘, ‘marry‘, ‘jack‘]

  3、重复序列元素:[num]*3

>>> [3]*4
[3, 3, 3, 3]
>>> num1=[1,2,3,4]
>>> num1*2
[1, 2, 3, 4, 1, 2, 3, 4]

  4、通过下表获取元素:s[ i ]

>>> num=[‘marry‘,‘jom‘,‘doudou‘,‘jiangjiang‘]
>>> num[2]
‘doudou‘
>>> num[1]
‘jom‘>>> num[-1]‘jiangjiang‘   //角标为-1的是最后一个元素

  5、访问指定索引范围元素:s [ i : j ]                   //访问角标以 i 开始,j  结束的元素 (注意:包头不包尾,即不包括元素  s[j]  )

>>> num=[‘marry‘,‘jom‘,‘doudou‘,‘jiangjiang‘,1,2,3]
>>> num[3:7]
[‘jiangjiang‘, 1, 2, 3]   //此处即不包括元素num[7]元素

 

  6、按步长访问指定索引范围:s [ i : j : k ]          //访问角标以 i 开始,j  结束的元素,中间跳过  k -1  个元素

>>> num=[‘marry‘,‘jom‘,‘doudou‘,‘jiangjiang‘,1,2,3]
>>> num[3:7]
[‘jiangjiang‘, 1, 2, 3]
>>> num[3:7:2]   //每获取一个元素,跳过2-1个元素
[‘jiangjiang‘, 2]
>>> num[3:7:3]
[‘jiangjiang‘, 3]   //每获取一个元素,跳过3-1个元素

  7、获取序列的长度: len(s)

>>> num=[‘marry‘,‘jom‘,‘doudou‘,‘jiangjiang‘,1,2,3]
>>> len(num)
7

  8、获取序列的最小或最大值 :max(s)  ||  min(s)

>>> num=[33,44,55,66,111,33]
>>> max(num)
111
>>> min(num)
33
>>> num2=[‘q‘,‘w‘,‘e‘,‘r‘,‘f‘,‘a‘]
>>> max(num2)
‘w‘
>>> min(num2)
‘a‘

  9、统计序列的总和:sum(s)

>>> num1=[1,2,3,4,5,6]
>>> sum(num1)
21

  10、检索某一元素第一次出现的下标: s.index(x)      //s为序列,x为要查询元素

>>> num=[‘marry‘,‘bob‘,‘marry‘,‘jack‘,‘tom‘,‘shark‘,‘eye‘]
>>> num.index(‘marry‘)   //检索第一次出现的位置
0
>>> num.index(‘shark‘)
5

  11、统计某一元素在序列中出现的次数: s.count(x)     //s为序列,x为要查询元素 

>>> num=[‘marry‘,‘bob‘,‘marry‘,‘jack‘,‘tom‘,‘shark‘,‘eye‘]
>>> num.count(‘marry‘)
2
>>> num.count(‘eye‘)
1

以上所有Python序列都支持。

可变序列通用操作

  1、增加序列中的元素

    s.insert(n,obj)  //在角标为n的位置插入对象obj

>>> num=[‘marry‘,‘bob‘,‘jack‘]
>>> num.insert(2,‘zhangsan‘)
>>> num
[‘marry‘, ‘bob‘, ‘zhangsan‘, ‘jack‘]
>>> num.insert(2,[‘lisi‘,‘wangwu‘])
>>> num
[‘marry‘, ‘bob‘, [‘lisi‘, ‘wangwu‘], ‘zhangsan‘, ‘jack‘]

    s.append(obj)   //把括号中元素作为一个对象加入

>>> num=[‘marry‘,‘bob‘,‘jack‘]
>>> num.append([1,2,3])
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, [1, 2, 3]]
>>> num.append(‘tiger‘)
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, [1, 2, 3], ‘tiger‘]

    s.extend(obj)    //把obj这个对象中的元素加入s序列中

>>> num=[‘marry‘,‘bob‘,‘jack‘]
>>> num2=[1,2,3]
>>> num.extend(num2)
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, 1, 2, 3]

  2、删除元素

    del  s [ i ]          //删除序列元素中角标为i的元素

>>> num=[‘marry‘,‘bob‘,‘jack‘]
>>> del num[0]
>>> num
[‘bob‘, ‘jack‘]
>>> del num[-1]
>>> num
[‘bob‘]

del  s[m:n:k]          //删除为角标 m到n的元素,包头不包尾,每删除一个元素跳过k-1个元素

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> del num[0:-1:2]
>>> num
[‘bob‘, ‘zhangsan‘, ‘wangwu‘]

    s[m:n]=[]           //删除序列角标为m到n-1

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num[2:5]=[]
>>> num
[‘marry‘, ‘bob‘, ‘wangwu‘]

    s.pop(n)           //返回并删除角标为n的元素,不写角标默认删除并弹回最后一个元素。角标越界报异常

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num.pop()
‘wangwu‘
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘]
>>> num.pop(0)
‘marry‘
>>> num
[‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘]

    s.remove(obj)     //在序列中删除obj这个元素,若元素不存在,则抛异常

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num.remove(‘marry‘)
>>> num
[‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘]
>>> num.remove(‘liubei‘)   //序列中没有‘liubei’ ,抛异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

    s.clear()          //删除序列中的所有元素

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘]
>>> num.clear()
>>> num
[]

  3、修改序列元素

    s[i]=x             //序列中角标为i的元素赋值为x

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘]
>>> num[-1]=‘liubei‘
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘, ‘liubei‘]
>>> num[-3]=‘guanyu‘
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘guanyu‘, ‘lisi‘, ‘liubei‘]

    s[n:m]=t        //将s序列中角标从n到m-1 的元素替换成t序列的元素

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num
[‘marry‘, ‘bob‘, ‘jack‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘]
>>> num[1:3]=[11,12,13,14,15,16]
>>> num
[‘marry‘, 11, 12, 13, 14, 15, 16, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘]
>>> num[:]=[‘q‘,‘w‘,‘e‘,‘r‘,‘t‘,‘y‘,‘u‘,‘i‘]         //整体全部替换
>>> num
[‘q‘, ‘w‘, ‘e‘, ‘r‘, ‘t‘, ‘y‘, ‘u‘, ‘i‘]

    s[n:m:k]=t       //将s序列中角标从n到m-1 的元素替换成t序列的元素,每替换一个元素跳过k-1个元素,切记t序列元素的个数必须和被替换的元素个数相等

>>> num=[‘marry‘,‘bob‘,‘jack‘,‘zhangsan‘,‘lisi‘,‘wangwu‘]
>>> num[2:5:2]=[‘hello‘,‘world‘]
>>> num
[‘marry‘, ‘bob‘, ‘hello‘, ‘zhangsan‘, ‘world‘, ‘wangwu‘]
>>> num[2:5:2]=[‘hello‘,‘world‘,‘kkkkk‘]  //此时替换的序列多了一个元素,抛异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 2

  4、元素排序翻转

    s.reverse()    //元素内部顺序颠倒

>>> num=[1,2,3,4,5,6,7,8]
>>> num
[1, 2, 3, 4, 5, 6, 7, 8]
>>> num.reverse()
>>> num
[8, 7, 6, 5, 4, 3, 2, 1]
>>> print(num.reverse())    //只在内部翻转,并不返回什么
None

  5、赋值序列内部元素

    new=old.copy()   //讲old序列中的元素复制的new序列上

>>> num=[‘kk‘,‘ff‘,‘jj‘,‘gg‘]
>>> num1=num.copy()
>>> num1
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]
>>> num1[2]=3
>>> num1
[‘kk‘, ‘ff‘, 3, ‘gg‘]
>>> num
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]

    new=old[:]           //讲old序列中的元素复制的new序列上

>>> num=[‘kk‘,‘ff‘,‘jj‘,‘gg‘]
>>> num1=num[:]
>>> num
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]
>>> num1
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]
>>> num1[2]=‘tom‘
>>> num1
[‘kk‘, ‘ff‘, ‘tom‘, ‘gg‘]
>>> num
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]

    old=new      //此种方法复制元素和上面两种复制有很大的不同,old与new二者共享引用,其实质任然指向同一个内存地址,无论哪一个序列发生改变,另一个会发生相同改变。

>>> num=[‘kk‘,‘ff‘,‘jj‘,‘gg‘]
>>> num1=num
>>> num1
[‘kk‘, ‘ff‘, ‘jj‘, ‘gg‘]
>>> num1[2]=‘hello‘
>>> num1
[‘kk‘, ‘ff‘, ‘hello‘, ‘gg‘]
>>> num
[‘kk‘, ‘ff‘, ‘hello‘, ‘gg‘]

    

  

    

    

时间: 2024-10-31 07:23:09

Python序列方法整理的相关文章

Python——问题解决方法整理

一.导入包问题解决 1. import requests ImportError: No module named requests 解决:进入CMD,输入pip install requests 2. import lxml 使用了pip install lxml也没有用,需要到网站下载https://pypi.python.org/pypi/lxml/2.3/#downloads,然后在CMD下python所在的文件夹下输入easy_install lxml-2.3-py2.7-win-am

Python回顾与整理4:序列(字符串/列表/元组)

0.说明 序列其实是Python的某几类数据类型的统称,如字符串,列表和元组,将它们统称为序列,是因为:它们的成员有序排列,并且可以通过下标偏移量访问到它的一个或者几个成员. 总结的思路为:先介绍适用于所有序列类型的操作符和内建函数,然后再分别对这几种序列类型进行介绍. 1.序列 序列类型都有相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,多个元素通过切片操作的方式得到.而在Python序列中,偏移量的规则如下(假设序列长度为N): (1)标准类型操作符 在<Python回顾与

Python回顾与整理5:映像和集体类型

0.说明 依然是按照前面介绍的几种序列类型的思路来总结字映像类型和集合类型,即先做一个介绍,再讨论可用操作符.工厂函数.内建函数和方法. 1.映射类型:字典 映射类型被称做哈希表,而Python中的字典对象就是哈希类型,即它是按照这样的方式来存储数据:(哈希表的算法)是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储对象的值.任何一个值存储的地址取决于它的键,正因为这种随意性,哈希表中的值是没有顺序的,所以Python中的字典对象中的元素也是无序的. 下

Python 字符串方法详解

Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几乎90% 以上的代码都是关于整数或字符串操作,所以与整数一样,Python 的字符串实现也使用了许多拿优化技术,使得字符串的性能达到极致.与 C++ 标准库(STL)中的 std::string 不同,python 字符串集合了许多字符串相关的算法,以方法成员的方式提供接口,使用起来非常方便. 字符

Python面试题整理-更新中

几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路人甲的回答 如何学习Python爬虫[入门篇] - 学习编程 - 知乎专栏 Python常用库整理 - 学习编程 - 知乎专栏 学好Python的11个优秀资源 - 学习编程 - 知乎专栏 在开头依然推荐一个Python面试题整理比较好的网站:GitHub : 关于Python的面试题.同样推荐几道

Python list方法总结

1.向列表的尾部添加一个新的元素 append(...) L.append(object) -- append object to end >>> a = ['sam',24,'shaw'] >>> a.append('35') >>> a ['sam', 24, 'shaw', '35'] 2.查找list中有多少个value count(...) L.count(value) -> integer -- returnnumber of occ

python day04 学习整理

python day4 学习整理 1.装饰器 #什么是装饰器#器是指函数#装饰就是修饰,意思是为其他函数添加新功能#装饰器定义:本质就是函数,定义是为其他函数添加新功能 ##装饰器需要遵循的原则#1,不修改被装饰函数的源代码(开放封闭原则)#2,为被装饰函数添加新功能后,不修改被装饰函数的调用方式 #实现装饰器的知识储备#装饰器 = 高阶函数 + 函数嵌套 + 闭包 # def foo(x):# def foo1(x):# return x# return foo1## print(foo(1)

python学习笔记:python序列

python序列包括字符串.列表和元组三部分,下面先总的说一下python序列共有的一些操作符和内建函数. 一.python序列 序列类型操作符 标准类型的操作符一般都能适用于所有的序列类型,这里说一下序列类型操作符. 1. 成员关系操作符(in.not in) 成员关系操作符是用来判断一个元素是否属于一个序列的.具体语法: 对象 [not] in 序列 2. 连接操作符(+) 这个操作符允许我们把一个序列和另一个相同类型的序列做连接,具体语法: sequence1 +sequence2 3.

Python回顾与整理3:数字

Python回顾与整理3:数字 0.说明 数字用的次数是否多主要是看需求,如果是做自动化运维平台开发,比如做一个自动监控的系统,那么你肯定需要收集一定量的数据,然后再对这些数据做一定的处理,那么这时候,你就一定需要用得上数字的.当然,我这里所说的要不要用数字,指的是,你是否需要对你的数据做一定的处理. 1.数字简介 数字是不可更改类型,也就是说变更数字的值会生成新的对象. (1)创建数值对象并用其赋值(数字对象) >>> anInt = 1 >>> aComplex =