标签:style http color io os ar 使用 strong sp
今天主要学习了Python列表的一些操作。具体总结如下:
列表概念有别于元组:列表可修改,元组不能。那为什么还要学习元组呢?因为元组的使用通常是技术性的,它与Python内部运行方式有关。
编写一个列表可以有如下格式:列表中的各个元素通过逗号隔开,写在方括号中。具体:
Edward = [‘Edward Gumby‘, 42]
通用序列操作主要有:索引、分片(slicing)、加、乘。先看索引
>>> greeting = ‘Hello‘
>>> greeting[0]
‘H‘
求最后一个索引值可以使用
>>> greeting[-1]
‘o‘
注:索引0是序列的第一个元素
分片:类似于matlab中的获取矩阵块
>>> tag = ‘<a href= "Http://www.python.org">Python web site</a>‘
>>> tag[9:30]
‘"Http://www.python.or‘
>>> tag[32:-4]
‘>Python web site‘
注:上例中索引30(其实是第31个元素)是取不到的,所取的元素个数为30-9=21个
如果分片所得部分序列结尾的元素,只需要空最后一个索引即可:
如:
>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[-3:]
[8, 9, 10]
同样这种方法适合于序列开始的元素
>>> numbers[:3]
[1, 2, 3]
刚刚所取的步长都是默认值1,能不能取其它步长呢?当然可以,通常有两个冒号,最后一个冒号所对应的数字就是步长。
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[1::4] #从第二个元素开始到结束,步长为4
[2, 6, 10]
>>> numbers[::4] #从第一个元素开始到结束,步长为4
[1, 5, 9]
步长也可以使负数的,即从右开始取值
>>> numbers[10:0:-2] #步长为-2,
[10, 8, 6, 4, 2]
加 相当于字符串相连
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
注:列表和字符串是不能相加的。
>>> [1,2,3] + ‘world‘
Traceback (most recent call last):
File "<pyshell#145>", line 1, in <module>
[1,2,3] + ‘world‘
TypeError: can only concatenate list (not "str") to list
乘 序列被重复x次
>>> ‘Python‘ * 5
‘PythonPythonPythonPythonPython‘
结合加和乘的例子:
sentence = raw_input("Sentence: ")
screen_width = 80
text_width = len(sentence)
box_width = text_width + 6
left_margin = (screen_width - box_width) // 2
print
print ‘ ‘ * left_margin + ‘+‘ + ‘-‘ *(box_width - 2) + ‘+‘
print ‘ ‘ * left_margin + ‘| ‘ + ‘ ‘ * text_width + ‘ |‘
print ‘ ‘ * left_margin + ‘| ‘ + sentence + ‘ |‘
print ‘ ‘ * left_margin + ‘| ‘ + ‘ ‘ * text_width + ‘ |‘
print ‘ ‘ * left_margin + ‘+‘ + ‘-‘ * (box_width -2) + ‘+‘
print
成员资格 检查一个值是否在序列中,可以用in运算符
>>> permissions = ‘rw‘
>>> ‘w‘ in permissions
True
>>> ‘x‘ in permissions
False
>>> users = [‘mlh‘, ‘foo‘, ‘bar‘]
>>> ‘mlh‘ in users
True
再谈几个内建函数 len, min和max
#len 返回序列所含的元素个数,min,max分别返回序列中最小值和最大值。
>>> numbers = [100, 34, 678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> max(2,3)
3
>>> min(9,3,2,5)
2
列表的基本操作:
元素赋值、删除元素、分片赋值、列表方法(append, count, extend, index, insert, pop, remove, reverse, sort)
元素赋值:
>>> x = [1,1,1]
>>> x[2] = 2
>>> x
[1, 1, 2]
删除元素:可用del语句来实现
>>> name = [‘Alice‘, ‘Beth‘, ‘Cecil‘, ‘Dee-Dee‘, ‘Earl‘]
>>> del name[2]
>>> name
[‘Alice‘, ‘Beth‘, ‘Dee-Dee‘, ‘Earl‘]
>>> numbers = [1,2,3]
>>> del numbers[-1] #删除最后一个元素
>>> numbers
[1, 2]
分片赋值: 扩展了元素赋值操作。
>>> name = list(‘Perl‘)
>>> name
[‘P‘, ‘e‘, ‘r‘, ‘l‘]
>>> name[2:] = list(‘ar‘)
>>> name
[‘P‘, ‘e‘, ‘a‘, ‘r‘]
>>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4] #相当于在第一个元素后插入新元素
>>> numbers
[1, 2, 3, 4, 5]
列表方法
方法:一个与某些对象有紧密联系的函数,对象可能是列表、数字、也有可能是字符串或其它类型的对象。一般可以利用以下方法调用:
对象. 方法(参数)
1、append:用于在列表末尾追加新的对象。
>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
2、count: 统计某个元素在列表中出现的频率
>>> [‘to‘, ‘be‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘].count(‘to‘)
2
>>> x = [[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
3、extend:可以再列表的末尾一次追加一个序列中多个值。跟+操作不一样的地方是它改变了原有的对象。如下例
#使用extend改变对象a
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
#使用+不改变对象a
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3]
4、index:用于从列表中找出某个值第一个匹配项的索引位置。第一个元素索引是0
>>> numbers = [[1,2],1,1,[2,1,[1,2]]]
>>> numbers.index(1)
1
>>> numbers.index([1,2])
0
5、insert:用于将对象插入列表中
>>> a = [1,2,3,4,5,6]
>>> a.insert(3,‘four‘)
>>> a
[1, 2, 3, ‘four‘, 4, 5, 6]
6、pop:移除列表中的一个元素(默认是最后一个元素),并返回该元素的值 对应于数据结构中的栈pop操作
>>> x = [1,2,3]
>>> x.pop(0)
1
>>> x
[2, 3]
7、remove:用于移除列表中某个值的第一个匹配项
>>> x = [‘to‘, ‘be‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
>>> x.remove(‘be‘)
>>> x
[‘to‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
如果没有匹配项就会报错
>>> x.remove(‘bee‘)
Traceback (most recent call last):
File "<pyshell#190>", line 1, in <module>
x.remove(‘bee‘)
ValueError: list.remove(x): x not in list
8、reverse:将列表中的元素反向存放
>>> x = [‘to‘, ‘be‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
>>> x.reverse()
>>> x
[‘be‘, ‘to‘, ‘not‘, ‘or‘, ‘be‘, ‘to‘]
9、sort:对列表进行排列 按从小到大排列
>>> numbers =[2,5,9,7]
>>> numbers.sort()
>>> numbers
[2, 5, 7, 9]
如果要对排列好的列表进行赋值时,千万不要使用以下两种方式:
1
>>> x = [1,2,6,4,3]
>>> y = x.sort() #实际上只对x排序,没有把排序后的结果赋值给y
>>> x
[1, 2, 3, 4, 6]
>>> y
>>> print y
None
2 #x y 都进行排序了
>>> x = [1,2,6,4,3]
>>> y = x
>>> y.sort()
>>> x
[1, 2, 3, 4, 6]
>>> y
[1, 2, 3, 4, 6]
有效的方式:
>>> x = [1,2,6,4,3]
>>> y = x[:]
>>> y.sort()
>>> x
[1, 2, 6, 4, 3]
>>> y
[1, 2, 3, 4, 6]
或者可以引入sorted函数
>>> x = [1,2,6,4,3]
>>> y = sorted(x)
>>> x
[1, 2, 6, 4, 3]
>>> y
[1, 2, 3, 4, 6]
标签:style http color io os ar 使用 strong sp
原文地址:http://www.cnblogs.com/fjndlsh/p/4031803.html