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

相关推荐

  • 树 非线性结构,每个元素都可以有多个前驱和后继 树是n(n>=0)个元素 n = 0时,称为空树 树只有一个特殊的没有前驱的元素,称为树的根root 树中除了根结点,其余元素只能有一个前驱,可以有0个或者多个后继 递归定义 树T是n(n>=0)个元素的集合,n=0时,称为空树 有且只有一个特殊元素根,剩余元素都可以被划分为m个互不相交的集合T1,…

    2018-04-16
  • Python内置数据结构-list、tuple、string

    Python内置数据结构 分类 数值型 int、float、complex、bool 序列对象 字符串 str 列表 list 元组 tuple 键值对 集 set 字典 dict 数值型 数值型 int、float、complex、bool都是类(class),1、5.0、1+2j都是对象即实例 int:在python3版本中表示长整型,没有大小限制,受限…

    2017-09-23
  • python内置数据结构

    python内置数据结构 sort(key=none,resverse=false)—>none 对列表元素进行排序,就地修改。默认升序 resvers为true,反转,降序 key为一个函数,指定key如何排序 ls.sort(key=functionaame) Print(lst.sort(key=str,reverse=Ture) I…

    Python笔记 2018-03-31
  • 类的继承

    Edit 类的继承 基本概念 面向对象三要素之一,继承Inheritance 举例: 人类和猫类都继承自动物类 个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性 在面向对象的世界中,以父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码、多复用。子类可以定义自己的属性和方法 class Animal: def shout(self): pr…

    2017-11-15
  • 函数

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

    2018-04-16
  • 高阶函数

    高阶函数 Frist class object 函数在python中是一等公民 函数也是对象,可调用的对象 函数可以作为普通变量,参数,返回值等等 数学概念y=g(f(x)) 在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数 接受一个或者多个函数作为参数 输出一个函数 计数器: def counter(base):def inc(step=1)…

    Python笔记 2018-04-23