python中list,tuple和字符串的处理方法和函数比较

列表list的定义和初始化
list() -> new empty list
list(iterable) -> new list initialized from iterable’s items
lst=[1,[],’we’,None]
iterable可迭代对象可以是列表,元组,字符串.
列表中的元素可以是任意元素,除了未定义的变量
元组的定义方法和它一样
list,tuple和字符串 都可以用 +,* 的方法返回一个新的list,tuple和字符串
lst+lst2 , lst*lst2 获得一个新的列表
……….
使用 对象名[index] 或者 对象[index]可以访问索引对应的元素
lst[1] –>[] , [1,[],’we’,None][3] –>None
s=’scf jkl’ s[2] –>’f’
三者都支持负索引访问,且方法一至

三者中只有列表是可变的,所以列表可以经过函数和方法处理后返回对自身的修改,而元组和字符串只能定义和删除.
有些方法在列表和其他方法中都有但使用上有差别
比如lst[2]=’abc’ 可以完成对列表中一个元素的修改,而对元组和列表使用类似操作不会返回对自身的修改或建一个新
的对象,而是直接报错.

三者共有且使用时没有明显差别的方法和函数
除了 * ,+外
len(对象或对象名) 返回对象的元素的总量
对象或对象名.count(value) 返回对象中的目标元素数量
对象或对象名.index(value,[start,[stop]]) 返回区间内指定元素索引(只会返回第一个找到的,匹配不到会报错)
in
[3,4] in [1, 2, [3,4]]
判断元素是否在对象中,返回布尔型

还有一些方法和函数只在list上有作用,但如果把元祖和字符串转化成list,也能完成类似操作
1.转置列表的函数reversed() 和方法reverse()
>>> a
[‘a’, ‘b’, ‘c’, ‘d’] >>>a.reverse()
>>> reversed(a) # 传入列表对象 >>>a
<list_reverseiterator object at 0x031874D0> [‘d’, ‘c’, ‘b’, ‘a’]
>>> b = reversed(a)
>>> b # 类型变成迭代器
<list_reverseiterator object at 0x037C4EB0>
>>> list(b)
[‘d’, ‘c’, ‘b’, ‘a’]

2.排序
sort(key=None, reverse=False) -> None 返回对自身的修改
lst.sort(key=functionname) key指定特定函数类型 (注意列表中元素类型必须一至才能正常执行)

3.复制 .copy()
其实元组和字符串也有类似操作
指定元组或字符串赋值给一个新的变量就完成复制
list 也有这种操作
lst1 = lst 这样获得的新列表元组,字符串指向内存中的地址和被复制的一样
但列表还有一种.copy()方法
lst1=lst.copy() 获得的列表指向了一块新的内存

4.增加插入元素
列表.append(object) -> None, 列表尾部追加元素
列表.insert(index,object) ->None 指定索引插入元素
列表.extend(iteratable) ->None 追加可迭代对象

5.删除列表元素
.remove(value) 查找元素找到后就删除并返回对自身的修改
.pop([index]) -> item 指定索引删除,返回被删除元素
.clear() 请空列表

对于元组和字符串,元组可以转化为列表甚至字符串操作
list(元组) –>列表
字符串由于其结构由字符构成,结构简单,它的操作函数花样繁多只做部分介绍.

1.count() 方法
s = “I am very very very sorry”
s.count(‘very’)
s.count(‘very’, 5)
s.count(‘very’, 10, 14)
不同于列表元组中,它可以指定连续多个字符,在指定范围内返回它的数量

2.index()和.find()方法
s = “I am very very very sorry”
s.index(‘very’) s.index(‘very’, 5)
s.index(‘very’, 6, 13)
s.rindex(‘very’, 10) (r是从右往左检索的意思)
s.rindex(‘very’, 10, 15)
s.rindex(‘very’,-10,-1)
s.find(‘very’)
s.find(‘very’, 5)
s.find(‘very’, 6, 13)
s.rfind(‘very’, 10)
s.rfind(‘very’, 10, 15)
s.rfind(‘very’,-10,-1)
list和元组中只有.index()方法
都是返回值对应的索引,但是如果没有查询到.index()和.rindex()直接报错,.find()和.rfind()返回 -1

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87551

(1)
daishitongdaishitong
上一篇 2017-09-24
下一篇 2017-09-24

相关推荐

  • 面向对象,魔术方法

    面向对象 一面向对象 什么是面向对象: 一种认识世界、分析世界的方法论。将万事万物抽象为类。 类class: 类是抽象的概念,是万事万物的抽象,是一类事物的共同集合的集合。 用计算机语言来描述类,就是属性和方法的集合。 对象instance,object: 对象是类的具象,是一个实体。 每个个体都是抽象类的不同实体。 哲学 一切皆对象 对象是数据和操作的封装…

    Python笔记 2018-05-14
  • Python第二周小结

    不知不觉已经正式学习接触Python两周了,第二周主要开始了Python内置数据结构的学习,包括从一开始的列表list,元组tuple,字符串string,再到后来的bytes, bytearray, 以及最后的集合set。这些数据结构可以说Python最为基础的几种类型,想要用Python写出漂亮的代码离不开对他们的熟练掌握与深刻理解。这几个结构各有各的特…

    Python笔记 2018-03-31
  • Python爬虫实战七之计算大学本学期绩点

    大家好,本次为大家带来的项目是计算大学本学期绩点。首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理。最主要的是了解cookie的相关操作。 本篇目标 1.模拟登录学生成绩管理系统 2.抓取本学期成绩界面 3.计算打印本学期成绩 1.URL的获…

    2017-09-09
  • 函数

    函数、参数、参数解构
    返回值、作用域
    递归函数
    匿名函数、
    生成器

    2018-04-16
  • 树 非线性结构,每个元素可有多个前驱和后继 树是n(n>=0)个元素的集合,n=0时,称为空树,树只有一个特殊的没有前驱的元素,称为树的根root,树中除了根结点外,其余元素只能有一个前驱,可以有零个和多个后继,子树也有自己的根 结点:树中的数据元素 结点的度degree:结点拥有的子树的数目称为度,记作d(v)。树的度是树内各结点的度最大值 叶子结点…

    2018-04-16
  • mysql慢查询日志进行按库切割重写文件然后分析

    需求: 把每天的慢查询日志进行按库切割 对每个库的慢查询日志进行分析 思路: 工具/功能 一般统计信息 高级统计信息 脚本 优势 mysqldumpslow 支持 不支持 perl mysql官方自带 mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强. mysql-explain-slow-log 支持 不支持 perl 无 my…

    Linux干货 2015-04-03