现在的位置: 首页 > 综合 > 正文

列表(操作方法 解析式)

2013年09月08日 ⁄ 综合 ⁄ 共 1578字 ⁄ 字号 评论关闭

一 基础

列表在python中感觉是最灵活的有序集合对象类型,有点像其他语言的数组的类型,它有很多非常有用的操作,下面大概介绍下
列表可以嵌套,索引和分片操作
嵌套:
l3 = ['a',['b','cc']]
索引:
l3[1]
分片:
l3[2:4]
下面有2个非常有意思的操作,+和*
比如:
[1,2]+[5,6]
结果生成了一个新的列表,[1,2,5,6]
注意python是强类型的语言,
如果
a = [1,2]
print a+"11"
它会报错:
Traceback (most recent call last):
File "", line 1, in
TypeError: can only concatenate list (not "str") to list

如果你要相加的话,可以把a通过str()方法转换成字符类型,或者是把字符串"11"通过list()方法转换成列表类型

 

二, 操作

上面介绍了python列表的基本知识点
python列表操作方法有下面主要几点:
a = [1,2,3,4,5]
1append()方法
向列表的尾部插入数据
有点像push操作
它可以push大部分数据,比如数字,字符串到列表里,
比如:
a.append(6)
a.append(7)
a.append([1,3])
如果你要进行列表的合并的话,用下面的extend方法
2extend()方法
b = ['a','b']
b = a.extend(b)
输出的结果是[1,2,3,4,5,a,b]

3insert()方法
比如
a.insert(1,66)
输出结果是[1, 66, 2, 3, 4, 5, 'a', 'b']
4remove()方法
a.remove(66)
输出的结果是:[1, 2, 3, 4, 5, 'a', 'b']

删除列表里面指定的值,如果没有的话,报错:
Traceback (most recent call last):
File "", line 1, in
ValueError: list.remove(x): x not in list
4pop方法
a.pop()
输出的结果是'b'
a.pop(2)
输出的结果是3
如果你没有指定参数的话,默然是返回列表的最后一个字符,如果指定的话,返回当前指定的索引的值
5index方法
a.index(2)

三 解析式

 

python 列表解析我感觉是python非常灵活的一个地方,一开始接触它的时候,特别是之前学过其它的语言,
你会感觉很不习惯,怎么看怎么不对劲,老是觉的哪个地方怪怪的,这就是列表解析的魔力所在。

python列表解析属于python的迭代中的一种,相比python for循环速度会快很多。下面看下python列表解析
是怎么工作的。
example:
a = [x+2 for x in range(10)]
print a
输出的结果:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

下面说下上面这个例子的执行过程:
python会在解释器里对range(10)进行迭代,依次把列表里的内容取出来,赋值给最左边的x,然后执行x+2的操作,
并且把执行好的结果保存在列表里。等range(10)迭代完以后就新生成了一个列表,结果就是[2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
从上面可以看出,这也是建立python 列表的一个方法。

上面的例子如果用python for 循环来实现,那会是什么样的呢?
a = []
for i in range(10):
a.append(i+2)

print a

输出的结果:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

从上面可以看的出来,python列表解析比python for循环解析列表的代码量会更少,解析速度会更快,写起来也更酷,自己单独写
脚本的话,会非常的简便,但是它也有不足之处,它的可读性不太好,特别是在团队开发的话,适当的还是少用点,这样通用性比较好,对大家也有好处。

如果你对python列表或者python列表操作方法 有兴趣的话,可以看看!

感谢老王

抱歉!评论已关闭.