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 17:09
下一篇 2017-09-24 21:20

相关推荐

  • 函数

    函数,函数参数,参数解构,作用域,递归函数,匿名函数以及生成器的基本概念。

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

    2018-04-16
  • Python基础之if while for循环练习

    if for while循环练习 没有边界的最好用while,有边界的最好用for 1.给定一个不超过5位数的正整数,判断其有几位 num = int(input()) if num<10: print(‘一位’) elif num<100: print(‘两位’) elif num<1000: print(‘三位’) elif num&l…

    2017-09-16
  • 正则表达式

    正则表达式 分类 BRE:基本正则表达式,grep,sed,vi等软件支持,vim有扩展 ERE:扩展正则表达式,egrep,grep -E ,sed  r等 PCRE:几乎所有的高级语言都是PCRE的方言或则变种, 基本语法 元字符metacharater .  匹配除换行符外任意一个字符 [abc]字符集合,只能表示一个字符的位置,匹配所包含的任意一个字…

    Python笔记 2018-05-07
  • Python函数式编程指南(二):函数

    这是此系列的第二篇,试图说明在Python中如何更好地使用函数并引导诸位使用函数式的思维进行思考。掌握并应用这些内容,就已经是至少形似的函数式风格的代码了,至于思维么,这个真靠自己。 作者水平有限,如有错漏之处还请指出;转载请注明原作者和原地址:) 2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数: def add(x, y): return…

    Linux干货 2015-03-11