序列是一种数据结构, 它包含的元素都进行了编号(从0开始)。典型的序列包括列表、字符串和元组。其中,列表是可变的,而元组和字符串是不可变的。
个人感觉列表跟C语言中的数组很相似,但也有不用之处,比如在数组中元素的类型都是一样的,而在列表中元素的类型可以混合。
索引(下标):
与C语言中的数组一样,列表支持下标访问,通过下标来访问列表中的元素。
#序列赋值 x = [1, 2, 3, "hello", ‘abc‘] print x #下标访问 print x[0] print x[3] #通过下标修改元素的内容 x[0] = "zzzzz" print x x[2] = 999 print x[2]
>>>
[1, 2, 3, ‘hello‘, ‘abc‘]
1
hello
[‘zzzzz‘, 2, 3, ‘hello‘, ‘abc‘]
999
分片:
通过分片操作,可以访问序列的一部分,其中分片需要两个索引号来指出分片的起始和结束位置。
strBuff = "www.baidu.com" #从下标4开始截取字符串,到下标-4结束(从右向左数下标4) strBuff = strBuff[4:-4] print strBuff nNumbers = [1, 2, 3, 4, 5, 6] #通过分片访问后三个元素 print nNumbers[-3:] #或者从左向右下标 print nNumbers[3:] print nNumbers[3:5] #分片访问时,如果右边的下标出现在了左边下标的左边,那么将会返回空列表 ‘‘‘ 从右向左下标: -6 -5 -4 -3 -2 -1 Val: 1 2 3 4 5 6 ‘‘‘ print nNumbers[-3:0] print nNumbers[-3:-6] print nNumbers[-1]
>>>
baidu
[4, 5, 6]
[4, 5, 6]
[4, 5]
[]
[]
6
分片时的步长:
所谓的步长,就是每次增加的长度,像C语言中的for (i = 0; i < 10; i++)循环中, i++即为for循环的步长
nNumbers = [1, 2, 3, 4, 5, 6] #分片时如果不加步长,默认步长为1,即: print nNumbers[1:5:1] #修改步长为2 print nNumbers[1:5:2] #输出列表中的所有元素,以下三种方式都可以 print nNumbers[:] print nNumbers print nNumbers[0:] #修改步长为2 print nNumbers[::2] print nNumbers[0::2]
>>>
[2, 3, 4, 5]
[2, 4]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 3, 5]
[1, 3, 5]
nNumbers = [1, 2, 3, 4, 5, 6] #列表相加 nNumbers += [9, 9, 10] print nNumbers #列表乘法 #用数字x乘以一个列表会生成新的列表,而在新的列表中, 原先的列表将被重复x次 data = [22] print data data *= 10 print data #列表清空 nNumbers = [] print nNumbers
>>>
[1, 2, 3, 4, 5, 6, 9, 9, 10]
[22]
[22, 22, 22, 22, 22, 22, 22, 22, 22, 22]
[]
成员资格:
检查一个值(元素)是否在列表当中,使用in操作符,如果存在则返回True,否则返回False
data = [1, 2, 3, 10, 22, "Hello", "Python", ".py"] print 1 in data print 22 in data print "Python" in data print "python" in data print "py" in data database = [ ["admin", "123456"], ["adminn", "admin888"], [‘aaaa‘, "6666"] ] username = raw_input("Input UserName: ") password = raw_input("Input PassWord: ") if [username, password] in database : print "OK" else: print "No"
>>> ================================ RESTART ================================
>>>
True
True
True
False
False
Input UserName: admin
Input PassWord: 123456
OK
>>> ================================ RESTART ================================
>>>
True
True
True
False
False
Input UserName: adminn
Input PassWord: 123456
No
取列表中的最小值,最大值,元素个数:
data = [1, 2, 3, 10, 22, "Hello", "Python", ".py"] print len(data) print min(data) print max(data) print max(10, 22, 11, -7)
>>>
8
1
Python
22
as
dasd