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

相关推荐

  • 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
  • Python面向对象基础

    语言分类 面向机器 抽象成机器指令,让机器容易理解 代表:汇编语言 面向过程 按照步骤一步一步走,若出现情况A做相应的处理,若出现情况B做相应的处理 问题规模小,可以步骤化,按部就班处理 代表:C 面向对象OOP 计算机需要处理的问题的规模越来越大,需要多人、多部门协作 代表:C++、Java、Python 面向对象 一种认识世界、分析世界的方法论。将万事万…

    2018-05-06
  • Python函数、参数及参数解构

    Python函数、参数及参数解构 函数 数学定义:y=f(x),y是x的函数,x是自变量 Python函数 由若干语句块组成的语句块、函数名称、参数列表构成,他是组织代码的最小单元 完成一定的功能 函数的作用 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的是为了复用,减少冗余代码 代码更加简洁美观、可读易懂 函数的分类 内建函数,如ma…

    2017-10-16
  • python基础

      shell作业 1. 取出文件基名     法一:cat 1.txt | egrep -o “[^/]+$”     法二:awk -F/ ‘{print $NF}’ 1.txt 2. 取ip地址     法一:ifconfig eth0 | grep “inet addr” | awk ‘{print $2}’ | cut -d: -f2  …

    2017-09-17
  • 函数执行过程和递归函数练习题

    函数执行过程和递归函数练习题

    2018-04-16
  • Python模块及详解(2)

    目录: 一、报表之Excel操作XlsxWriter模块 二、Python与rrdtool的结合模块 三、构建集中式的病毒扫描机制 四、系统批量运维管理器paramiko详解 五、系统批量运维管理器Fabric详解 一、报表之Excel操作XlsxWriter模块 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营…

    2018-01-17