列表、元祖通用序列操作

  • 通过序列操作
所有序列都可以进行某些特性的操作,比如说:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、以及检查某个元素是否属于序列的成员(成员资格),还支持一些内建函数,如说长度、最小、最大值等

  • 索引(indexing)
greeting  = 'hello' #字符串也可以理解为序列,因为对元素进行了编号等处理
print greeting[3]

print 'hello'[3]

fourth = raw_input('year: ')[3]
print fourth

#输出
l
l
year: 
12
 
1
greeting  = 'hello' #字符串也可以理解为序列,因为对元素进行了编号等处理
2
print greeting[3]
3
4
print 'hello'[3]
5
6
fourth = raw_input('year: ')[3]
7
print fourth
8
9
#输出
10
l
11
l
12
year: 

  • 分片(slicing)
通过索引获取元素,注意只包含开始位置不包含结束位置
numbers = [1,2,3,4,5,6,7,8]
print numbers[3:6]          #注意,只获取包含索引3,不包含索引6
print numbers[3:-2]         #索引从3开始到倒二的位置
print numbers[:7]           #头取到尾
print numbers[:-1]          #从最开始数取到导数第一,不包含倒数第一个
print numbers[-1:]          #取最后一个
print numbers[-3:0]         #输出空列表
print numbers[:]            #复制整个序列
print numbers[:len()]       #取出整个序列中的元素


#输出结果
[4, 5, 6]
[4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7]
[8]
[]
序列中的元素
 
1
numbers = [1,2,3,4,5,6,7,8]
2
print numbers[3:6]          #注意,只获取包含索引3,不包含索引6
3
print numbers[3:-2]         #索引从3开始到倒二的位置
4
print numbers[:7]           #头取到尾
5
print numbers[:-1]          #从最开始数取到导数第一,不包含倒数第一个
6
print numbers[-1:]          #取最后一个
7
print numbers[-3:0]         #输出空列表
8
print numbers[:]            #复制整个序列
9
print numbers[:len()]       #取出整个序列中的元素
10
11
12
#输出结果
13
[4, 5, 6]
14
[4, 5, 6]
15
[1, 2, 3, 4, 5, 6, 7]
16
[1, 2, 3, 4, 5, 6, 7]
17
[8]
18
[]
通过步长(step length)来获取,分片的开始/结束为位置需要指定,最后一个参数是步长
numbers = [1,2,3,4,5,6,7,8,9,10]
print numbers[0:10:1]
print numbers[0:10:2]
print numbers[::4]                  #输出[1, 5, 9],将步长设置为4,从开始位置间隔3个取出一个
print numbers[8:3:-1]     #输出[9, 8, 7, 6, 5],步长不能为0,负数表示从右到左取元素,从第8个位置开始取到第3个位置,间隔为0

print numbers[10:0:2]     #输出[10,8,6,4,2]
print numbers[5::-2]      #输出[6,4,2]
print numbers[:5:-2]      #输出[10.8]
9
 
1
numbers = [1,2,3,4,5,6,7,8,9,10]
2
print numbers[0:10:1]
3
print numbers[0:10:2]
4
print numbers[::4]                  #输出[1, 5, 9],将步长设置为4,从开始位置间隔3个取出一个
5
print numbers[8:3:-1]     #输出[9, 8, 7, 6, 5],步长不能为0,负数表示从右到左取元素,从第8个位置开始取到第3个位置,间隔为0
6
7
print numbers[10:0:2]     #输出[10,8,6,4,2]
8
print numbers[5::-2]      #输出[6,4,2]
9
print numbers[:5:-2]      #输出[10.8]
  • 序列相加(adding)
print [1,2,3,4]+[5,6]
print [1,2,3]+'hello wolrd'  #TypeError: can only concatenate list (not "str") to list ,序列类型不同无法相加
2
 
1
print [1,2,3,4]+[5,6]
2
print [1,2,3]+'hello wolrd'  #TypeError: can only concatenate list (not "str") to list ,序列类型不同无法相加

  • 乘法
想要初始化长度为10 的列表,可以使用 None来执行
s =[1,2,3,4]+[5,6]
print s
print s *3  #乘法表示生成一个新的序列中将原序列重复的3次

print [None] *10  #None是Python的内键值,表示空值

#输出
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None, None, None, None, None]
x
12
 
1
s =[1,2,3,4]+[5,6]
2
print s
3
print s *3  #乘法表示生成一个新的序列中将原序列重复的3次
4
5
print [None] *10  #None是Python的内键值,表示空值
6
7
#输出
8
[1, 2, 3, 4, 5, 6]
9
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
10
[None, None, None, None, None, None, None, None, None, None]

  • 成员资格
就是成员运算符(in、not in)
in如果在指定的序列中找到值返回True,否者返回False
not in如果在指定的序列中没有找到值返回True,否则返回False
database = [['a','1'],['b','2'],['c','3']]
userame = raw_input('your name: ' )
pin = raw_input('pin码: ' )
if([userame,pin] in database):  #if过好内为 TRUE则输出 Access granted
    print 'Access granted'
else:
    print "wrong"
 
1
database = [['a','1'],['b','2'],['c','3']]
2
userame = raw_input('your name: ' )
3
pin = raw_input('pin码: ' )
4
if([userame,pin] in database):  #if过好内为 TRUE则输出 Access granted
5
    print 'Access granted'
6
else:
7
    print "wrong"

  • 长度、最小、最大值
len()、max()、min()
database = [['a','1'],['b','2'],['c','3']]
print len(database)
print max(database)
print min(database)
 
1
database = [['a','1'],['b','2'],['c','3']]
2
print len(database)
3
print max(database)
4
print min(database)



转载于:https://my.oschina.net/u/1785519/blog/1582422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值