【Python基础教程】第2章 列表和元组-2.2通用序列操作

本文主要介绍Python中列表和元组的通用序列操作,包括索引、切片、加法、乘法、成员资格检查,以及计算序列长度、找到最大和最小元素等基本操作。示例代码2-2展示了索引的使用。
摘要由CSDN通过智能技术生成

2.2 通用序列操作

(索引,分片,加,乘,成员资格)(计算序列长度、最大元素、最小元素)


2.2.1 索引

>>> #2.2.1 索引
>>> greeting = 'Hello'
>>> greeting[0]
'H'
>>> greeting[-1]#最后一个元素的位置编号是-1
'o'
>>> 'Hello'[1]
'e'
>>> fourth = raw_input('Year:')[3]
Year:2005
>>> fourth
'5'

2.2.2 分片

>>> #2.2.2 分片
>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[0:1]
[1]
>>> numbers[-3:-1]
[8, 9]
>>> numbers[5:-1]
[6, 7, 8, 9]
>>> #由上可知,分片操作的需要两个索引作为边界
>>> #第1个索引的元素包含在分片内,第2个索引的元素不包含在分片内
>>> #[a,b),即左闭右开
>>> 
>>> #1.优雅捷径:如何方便地访问第一个元素和最后一个元素
>>> numbers[-3:]
[8, 9, 10]
>>> numbers[:3]
[1, 2, 3]
>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 
>>> #2.更大的步长:步长默认为1,可以显式地设定,正值负值都可以
>>> #(1).步长为正值,即从左到右提取元素
>>> numbers[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[::4]
[1, 5, 9]
>>> #(2).步长为负值,即从右到左提取元素
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>> numbers[10:0:-2]
[10, 8, 6, 4, 2]
>>> numbers[0:10:-2]
[]
>>> numbers[::-2]
[10, 8, 6, 4, 2]
>>> numbers[5::-2]
[6, 4, 2]
>>> numbers[:5:-2]
[10, 8]

2.2.3 序列相加

>>> #2.2.3 序列相加
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'Hello,'+'world!'
'Hello,world!'
>>> #两种相同类型的序列才能进行连接操作
>>> [1,2,3]+'world!'

Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    [1,2,3]+'world!'
TypeError: can only concatenate list (not "str") to list

2.2.4 乘法

>>> #2.2.4 乘法
>>> 'python'*5
'pythonpythonpythonpythonpython'
>>> [42]*10
[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]
>>> #None,空列表和初始化
>>> #None:Python的内建值,表示"这里什么也没有"
>>> sequence = [None]*10
>>> sequence
[None, None, None, None, None, None, None, None, None, None]

2.2.5 成员资格

>>> #2.2.5成员资格:in运算符
>>> #e1:检查文件的可写和可执行权限
>>> permissions = 'rw'
>>> 'w' in permissions
True
>>> 'x' in permissions
False
>>> #e2:检查用户名是否在用户列表中
>>> users = ['mlh','foo','bar']
>>> raw_input('Enter your username:') in users
Enter your username:mlh
True
>>> #e3:垃圾邮件过滤器,检查字符串中是否含有特定字符
>>> subject = '$$$ Get rich now!!! $$$'
>>> '$$$' in subject
True

2.2.6 长度、最小值和最大值

>>> #2.2.6 长度、最小值和最大值
>>> numbers = [100,34,678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)
34
>>> max(2,3)
3
>>> min(9,3,2,5)
2

附:

代码2-2:

# -*- coding: cp936 -*-
#对http://www.something.com形式的URL进行分割

url = raw_input('Please enter the URL:')
domain = url[11:-4]

print "Domain name:" + domain
>>> ================================ RESTART ================================
>>> 
Please enter the URL:http://www.python.org
Domain name:python
>>> 

代码2-4:

# -*- coding: cp936 -*-
#检查用户名和PIN码
database = [
    ['aaaa','1111'],
    ['bbbb','2222'],
    ['cccc','3333'],
    ['dddd','4444']
    ]

username = raw_input('User name:')
pin = raw_input('PIN code:')

if [username, pin] in database: print 'Access granted' 
>>> ================================ RESTART ================================
>>> 
User name:aaaa
PIN code:1111
Access granted
>>> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值