文档章节

Python列表

浣雨笑笑生
 浣雨笑笑生
发布于 2014/05/31 12:34
字数 1463
阅读 26
收藏 0
点赞 0
评论 0
#-- coding: utf-8 --
#列表:和数组类似,能够保存任意数量任意类型的python对象,使用中括号包裹。支持切片运算,元素的个数与元素的值均可以改变。
#元组:和列表类似,支持切片运算,但是元素的个数以及元素的值无法修改。使用括号包裹。
#字典:键-值对组成,使用大括号包裹。其实就是HASH表的实现。
#Test the list in the python
#新建列表
l1 = []#新建一个空的list
l2 = [1,2,3,4]#建一个list,索引为0-3
l3 = ["abc", ["def", "ghi"]]#建一个嵌套的list
print l3
a_list = ['a', 1, ('a', 'b')]
b_list = ['a', 'b', 0, 1, 3]
print a_list
a_list[0:0] = ['hello']
print "在列表的头部插入一个元素后为: ", a_list
a_list[1:1] = ["victor"]
print "在列表的第二个位置插入一个元素为: ", a_list
print b_list
print "切片b_list[1:3]: ", b_list[1:3]#切片,输出b_list中的第二个到第四个的元素
print "b_list[:3]: ", b_list[:3]
print "b_list[3:]: ",b_list[3:]
print "b_list[:]: ",b_list[:]
#创建连续的list
list1 = range(1,5)
list2 = range(1,10,2)
print "list1: ", list1
print "list2: ", list2
#删除链表的值
for i in range(len(list2)):
    if list2[i] == 9:
        del list2[i]
print "list2中删除9之后为: ", list2
#更新
list2[1] = "victor"#更新list2中第二个元素,设置为“victor”
print "After update the second element: ", list2
#遍历
print "a_list中的元素依次为: "
for element in a_list:
    print element
#list的方法
list = []#创建一个空的list
print "最初的list: ", list
#增加
list.append("Hello, ")#向末尾追加元素
print 'append("Hello"): ', list
list.extend(list2)#向末尾追加一个list
print 'extend(list2): ', list
list += list2#在末尾追加一个list
print "list += list2: ", list
#查找
print "The count of 1: ", list.count(1)
print "list.index(1): ", list.index(1)#得到list中第一次出现1的位置
list.sort()#对list的元素进行排序
print "sort()", list
list.reverse()#对list中的元素进行逆序排列
print "reverse(): ", list
print list.pop()#默认得到list的最后一个元素并从list中删除
print "pop(): ", list
list.remove(list[1])#删除第二个元素,如果知道具体删除的内容就用remove方法
print "remove(1): ", list
list.insert(1,"Victor")#在第二个位置插入
print 'insert(1,"victor"): ', list
del list[2]#删除第三个元素,如果不知道具体删除的内容就用这种方法
print "del list[2]: ",list
print "得到列表%s的长度%d: " %("a_list", len(a_list))

其中对列表中元素的删除

list = [1,1,1,2,3,4]
for i in range(len(list)):
    if list[i] == 1:
        del list[i]

这样是会报错的,因为在删除的时候列表元素的下标发生了变化。

可以使用如下方法删除:

list = filter(lambda x:x!=1,list)
#或者
list = [i for i in list if i!=1]

lambda的用法:转自http://my.oschina.net/davehe/blog/122418

 python允许用lambda来创建匿名函数,匿名是因为不需要以标准的方式来声明,而def创建的方法是有名称的,它们主要有2个地方不一样

     1.lambda表达式返回可调用的函数对象.但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量.

     2.lambda 它只是一个表达式,而def是一个语句

     对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。用lambda赋值非常有用,由于它只是一个表达式,它可以直接作为python 列表和元组,字典的成员。

sum = lambda x: x**2

在lambda这里没有办法用def语句直接代替,因为def是语句,不是表达式不能嵌套在里面,lambda表达式在":"后只能有一个表达式。也就是说,在def中,用return可以返回的也可以放在lambda后面,不能用return返回的也不能定义lambda后面.因此,像if或for或print这种语句就不能用于lambda中,lambda一般只用来定义简单的函数。

 另外lambda函数可以很好和python中内建filter(),map(),reduce()函数的应用程序结合起来,因为它们都带了一个可执行的函数对象.

1filter(...)

    filter(function or None, sequence) -> list, tuple, or string
给定一个'过滤函数'和一个对象的序列,每个序列元素都通过这个过滤器进行筛选,保留函数返回为真的对象.filter函数为已知的序列的每个元素调用给定布尔函数.每个filter返回的非零(true)值元素添加到一个列表中.

   例如使用filter()来获得任意奇数的列表脚本.

from random import randint      
    allNums = []    
    for eachNum in range(10):    
       allNums.append(randint(1,100))    
    print filter(lambda x: x%2,allNums) #使用filter()来移除所有偶数

2.map(...)
    map(function, sequence[, sequence, ...]) -> list

map()内建函数与filter()相似,因为它也能通过函数来处理序列,但map()将函数调用'映射'到每个序列的元素上,并返回一个含有所有返回值的列表。

     例如,映射函数是给每个进入的数字加10,并且将这个函数和一个数字的列表传给map().

map(lambda x:x+10,[0,1,2,3,4,5,6,7,8,9])    
    [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

3.reduce(...)
    reduce(function, sequence[, initial]) -> value

它通过取出序列的头两个元素.将他们传入二元函数来获得一个单一的值来实现.然后又用这个值和序列的下一个元素来获得又一个值,然后继续直到整个序列的内容都遍历完毕以后最后的值会被计算出来为止.

reduce(func,[1,2,3]) 等同于 func(func(1,2),3)

例如:计算从1加到10的和

print 'the total is:',reduce((lambda x,y:x+y),range(1,11))    
    the total is: 55


© 著作权归作者所有

共有 人打赏支持
浣雨笑笑生
粉丝 7
博文 38
码字总数 52199
作品 0
徐汇
程序员
Supporting Python 3(支持python3)——语言区别和暂时解决方法

语言区别和暂时解决方法 这个附录包含一个Python 2和Python 3的不同之处列表以及能不用2to3转换同时在Python 2和Python 3下运行的示例代码。 这个列表是不完整的。在这里列出的只有不包括bug...

在湖闻樟
2015/11/20
0
0
Supporting Python 3(支持python3)——使用现代的风格改善你的代码

使用现代风格改善你的代码 原文: http://python3porting.com/improving.html 译者: TheLover_Z 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码。这篇文章中提到的很多东西...

在湖闻樟
2015/10/26
0
0
Python基础入门教程(4)(数据类型)

人生苦短,我学Pyhton   Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同...

jamesjoshuasss
2017/03/07
0
0
Python编程入门到实践 - 笔记( 6 章)

第 6 章主要练习了各种字典,以下内容 什么是字典 字典中 键-值 的关系 一个简单的字典 通过字典中的键查找其对应的值 在字典中添加 键-值 修改字典中的值 遍历字典中的键值对 items( ) 遍历...

mlwzby
07/02
0
0
Python的sum、map、filter和reduce

本文作者: Yarving Liu 本文链接: http://yarving.historytale.com/2018/06/05/python-sum-map-filter-reduce/ 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。...

yarving
06/07
0
0
最新阿里巴巴面试题(附带面试标准答案)

在上一节中,我们已经介绍了关于阿里巴巴的任职要求,这节我就详细的介绍一下关于阿里巴巴的面试题(涉及到标准代码部分不予以出现,如果想要可以加群:725479218,里面可以进行技术分享、技术...

柯西带你学编程
06/02
0
0
python2.x和python3.x的区别

Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python3.0在设计的时候没有考虑向下相容。许多针对早期Python版本...

leejia1989
06/26
0
0
【收藏】Python实用技巧-成为Pythoner必经之路

前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好? 如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单、优雅; 如果你象我这样,对 Python 有兴...

燕莳泗
2013/03/24
0
0
Python 元组、列表、字典、文件

python的元组、列表、字典数据类型是很python(there python is a adjective)的数据结构。这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益处。 元组 个人认为就...

icheer
2012/07/13
0
0
python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域

目录[-] 1、先来看个问题吧: 2、引用 VS 拷贝: 3、增强赋值以及共享引用: 4、python 从 2k 到 3k,语句变函数引发的变量作用域问题 在 python 中赋值语句总是建立对象的引用值,而不是复制...

icheer
2014/03/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
28分钟前
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
45分钟前
4
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部