博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python列表和元祖
阅读量:6112 次
发布时间:2019-06-21

本文共 2080 字,大约阅读时间需要 6 分钟。

Python的数据结构有 序列和容器(容器包含序列、映射、集合)

Python包含6种内建的序列:列表、元祖、字符串、Unicode字符串、buffer对象、xrange对象。

最基本的数据结构是序列(元祖和列表),序列中所有元素都是有编号的,元素的位置称为索引,第一个索引得失0,第二个索引是1...,最后一个索引为-1

 序列类型转换的工厂函数:

list(iter)把可迭代对象转换为列表

str(obj)把对象转换成字符串

unicode(obj)

basestring()

tuple(iter)把可迭代对象转换成一个元祖对象

通用序列操作:

 

通用操作 说明 例子
索引

字符串字面值能够直接使用索引

变量引用使用索引

'Hello'[1]

moth[1]

分片

 跟索引类似

可以置空最后/第一个的索引

可以是负数,从结尾开始计数

加入步长

tag[9:30]

tag[2:]

tag[-3:-1]

tag[::-2]

相加 相同类型的序列才能进行连接操作

 [1,2,3]+[4,5]

输出[1,2,3,4,5]

乘法 原来的序列将被重复x次

 'python'*5

[10]*3

成员资格 元素 in 序列,返回布尔值

'w' in 'rw'

'users' in ['mlh','users']

长度 内建函数  len(numbers)
max/min 内建函数  max(2,3,4)
比较 内建函数 cmp(x,y)

序列->列表:

列表用方括号表示,区别于元祖的括号表示。

创建列表的方式:

x=[]
x=[123,'abc',['inner',222]]
list('foo')   ->['f','o','o']

 

方法即是与某些对象有紧密联系的函数。

可以用dir(list)来列出所有内建方法

基本操作 元素赋值 x[1]=2 不能为一个位置不存在的元素赋值  
  删除元素 del names[2]  删除整个列表del names  
  分片赋值 name[2:]=list('ar')    
列表方法 append()

lst=[1,2,3]

lst.append(4)

末尾加上元素4 没有返回值
  count() x.count([1,2]) 统计列表x中出现多少个[1,2] 返回数字
  extend() a.extend(b) a列表加上b列表,改变a列表 没有返回值
  index() knights.index('who') 在列表knights中,返回元素who第一次出现的索引位置 返回索引位置数字
  insert() numbers.insert(3,'four') 在numbers的列表中,在索引3的位置插入元素four 没有返回值
  pop()

x.pop()

x.pop(0)

默认移除列表x的最后一个元素

移除列表的索引为0的元素

返回被删除的元素值

  remove() x.remove('be') 移出列表中某个值的第一个匹配项 没有返回值
  reverse() x.reverse() 将列表中的元素反向存放 没有返回值
  sort() x.sort() 在原位置进行排序 没有返回值
  高级排序 cmp(42,32) x<y时返回负数,x>y返回正数,x=y返回0  
    x.sort(cmp) 根据大小排序  
    x.sort(key=len) 根据长度排序  
    x.sort(reverse=True) 反向排序  
 内建函数 list函数

list('Hello')->['H','e','l','l','o']

list(元祖名称)->列表

将元祖转换为列表

将字符串转换为列表

 
  sorted()  sorted(x) 排序  返回列表,返回的是新对象
  reversed()  reversed(x) 颠倒  返回列表 ,返回的是新对象
  enumerate() for i,j in enumerate(x) 取序列号和序列值 返回序列号和序列值
  zip() for i,j in zip(x1,x2)    
  sum() sum(x)/sum(x,4) 列表值相加/列表相加后和后面的参数相加  

x=[i*2 for i in [8,-2,5]]

x=[i for i in range(8) if i%2==0]

序列->元祖:

元祖不可修改。用圆括号括起来的。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

a=1,

a=('abc',12,[s,'iii'])

x,y=1,2

tuple函数

tuple([1,2,3])

->(1,2,3)

把一个序列作为参数并转换为元祖

返回元祖

与序列相关的模块

copy 提供浅拷贝和深拷贝  包含函数copy(),deepcopy()
operator 序列操作符  
re 正则表达  
StringIO    
Textwrap    
types 包含python支持的所有类型  
collections 高性能容器数据类型  
     
     
     

转载于:https://www.cnblogs.com/zz27zz/p/7366145.html

你可能感兴趣的文章
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>