Python list操作用法总结


Posted in Python onNovember 10, 2015

本文实例讲述了Python list操作用法。分享给大家供大家参考,具体如下:

List是python中的基本数据结构之一,和Java中的ArrayList有些类似,支持动态的元素的增加。list还支持不同类型的元素在一个列表中,List is an Object。

最基本的创建一个列表的方法

myList = ['a','b','c']

Python list常见操作如下:

创建列表

sample_list = ['a',1,('a','b')]

Python 列表操作

sample_list = ['a','b',0,1,3]

得到列表中的某一个值

value_start = sample_list[0]
end_value = sample_list[-1]

删除列表的第一个值

del sample_list[0]

在列表中插入一个值

sample_list[0:0] = ['sample value']

得到列表的长度

list_length = len(sample_list)

列表遍历

for element in sample_list:
  print(element)

Python 列表高级操作/技巧

产生一个数值递增列表

num_inc_list = range(30)
#will return a list [0,1,2,...,29]

用某个固定值初始化列表

initial_value = 0
list_length = 5
sample_list = [ initial_value for i in range(10)]
sample_list = [initial_value]*list_length
# sample_list ==[0,0,0,0,0]

附:python内置类型

1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)

a = ["I","you","he","she"] #元素可为任何类型。

下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素

取list的元素数量

len(list)   #list的长度。实际该方法是调用了此对象的__len__(self)方法。

创建连续的list

L = range(1,5)   #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法

L.append(var)  #追加元素
L.insert(index,var)
L.pop(var)   #返回最后一个元素,并从list中删除之
L.remove(var)  #删除第一次出现的该元素
L.count(var)  #该元素在列表中出现的个数
L.index(var)  #该元素的位置,无则抛异常 
L.extend(list) #追加list,即合并list到L上
L.sort()    #排序
L.reverse()   #倒序
list 操作符:,+,*,关键字del
a[1:]    #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4    #为[2,2,2,2]
del L[1]  #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素

list的复制

L1 = L   #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:]  #L1为L的克隆,即另一个拷贝。
list comprehension

   [ <expr1> for k in L if <expr2> ]

2、dictionary: 字典(即C++标准库的map)

dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}

每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。

键是唯一的,字典只认最后一个赋的键值。

dictionary的方法

D.get(key, 0)    #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key)   #有该键返回TRUE,否则FALSE
D.keys()      #返回字典键的列表
D.values()
D.items()
D.update(dict2)   #增加合并字典
D.popitem()     #得到一个pair,并从字典中删除它。已空则抛异常
D.clear()      #清空字典,同del dict
D.copy()      #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)
          #第一个大返回1,小返回-1,一样返回0

dictionary的复制

dict1 = dict    #别名
dict2=dict.copy()  #克隆,即另一个拷贝。

3、tuple:元组(即常量数组)

tuple = ('a', 'b', 'c', 'd', 'e')

可以用list的 [],:操作符提取元素。就是不能直接修改元素。

4、string: 字符串(即不能修改的字符list)

str = "Hello My friend"

字符串是一个整 体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。

子字符串的提取

str[:6]

字符串包含 判断操作符:in,not in
"He" in str
"she" not in str

string模块,还提供了很多方法,如

S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start [,end]]) #反向查找
S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
S.rindex(substring,[start [,end]])#同上反向查找
S.count(substring,[start [,end]]) #返回找到子串的个数
S.lowercase()
S.capitalize()   #首字母大写
S.lower()      #转小写
S.upper()      #转大写
S.swapcase()    #大小写互换
S.split(str, ' ')  #将string转list,以空格切分
S.join(list, ' ')  #将list转string,以空格连接

处理字符串的内置函数

len(str)        #串长度
cmp("my friend", str)  #字符串比较。第一个大,返回1
max('abcxyz')      #寻找字符串中最大的字符
min('abcxyz')      #寻找字符串中最小的字符

string的转换

oat(str) #变成浮点数,float("1e-1") 结果为0.1
int(str)    #变成整型, int("12") 结果为12
int(str,base)  #变成base进制整型数,int("11",2) 结果为2
long(str)    #变成长整型,
long(str,base) #变成base进制长整型,

字符串的格式化(注意其转义字符,大多如C语言的,略)

str_format % (参数列表) ?#参数列表是以tuple的形式定义的,即不可运行中改变

>>>print ""%s's height is %dcm" % ("My brother", 180)

          #结果显示为 My brother's height is 180cm

list 和 tuple 的相互转化

tuple(ls) 
list(ls)

补充:

在python中list也是对象,所以他也有方法和属性,在ptython解释器中 使用help(list)可以查看其文档,部分开放方法如下:

Python list操作用法总结

这里以一个实例代码介绍这些方法的具体用法:

# coding=utf-8
# Filename : list.py
# Date: 2012 11 20
# 创建一个list方式
heatList = ['wade','james','bosh','haslem']
tableList = list('123') #list方法接受一个iterable的参数
print 'Miami heat has ',len(heatList),' NBA Stars , they are:'
#遍历list中的元素
for player in heatList:
  print player,
#向list添加元素
heatList.append('allen') #方式一:向list结尾添加 参数object
print '\nAfter allen join the team ,they are: '
print heatList
heatList.insert(4,'lewis') #方式二:插入一个元素 参数一:index位置 参数二:object
print 'After lewis join the team, they are:'
print heatList
heatList.extend(tableList) #方式三:扩展列表,参数:iterable参数
print 'After extend a table list,now they are :'
print heatList
#从list删除元素
heatList.remove('1')  #删除方式一:参数object 如有重复元素,只会删除最靠前的
print" Remove '1' ..now '1' is gone\n",heatList
heatList.pop()  #删除方式二:pop 可选参数index删除指定位置的元素 默认为最后一个元素
print "Pop the last element '3'\n",heatList
del heatList[6] #删除方式三:可以删除制定元素或者列表切片
print "del '3' at the index 6\n",heatList
#逻辑判断
#统计方法 count 参数:具体元素的值
print 'james apears ',heatList.count('wade'),' times'
#in 和 not in 
print 'wade in list ? ',('wade' in heatList)
print 'wade not in list ? ',('wade' not in heatList)
#定位 index方法:参数:具体元素的值 可选参数:切片范围
print 'allen in the list ? ',heatList.index('allen')
#下一行代码会报错,因为allen不在前三名里
#print 'allen in the fisrt 3 player ? ',heatList.index('allen',0,3)
#排序和反转代码
print 'When the list is reversed : '
heatList.reverse()
print heatList
print 'When the list is sorted: '
heatList.sort() #sort有三个默认参数 cmp=None,key=None,reverse=False 因此可以制定排序参数以后再讲
print heatList
#list 的分片[start:end] 分片中不包含end位置的元素
print 'elements from 2nd to 3rd ' , heatList[1:3]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python基于pillow判断图片完整性的方法
Sep 18 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
python爬虫框架feapde的使用简介
Apr 20 Python
python控制台中实现进度条功能
Nov 10 #Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 #Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 #Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 #Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 #Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 #Python
Python实现模拟时钟代码推荐
Nov 08 #Python
You might like
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
python基础教程之序列详解
2014/08/29 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python中的decimal类型转换实例详解
2019/06/26 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
python使用建议技巧分享(三)
2020/08/18 Python
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
政府门卫岗位职责
2014/04/29 职场文书
初中班级口号
2014/06/09 职场文书
五年级作文之成长
2019/09/16 职场文书