《python基础教程》笔记之 序列通用操作
- 索引
序列中的所有元素都是有编号的--从0开始递增。使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可以直接使用索引。如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作。如
#根据给定的年月日以数字形式打印出日期
months = ['January', 'February', 'march', 'May', 'June', 'August', 'September',
'October', 'November', 'December']
#以1-31的数字作为结尾的列表
endings = ['st', 'nd', 'rd'] + 17*['th'] + ['st', 'nd', 'rd'] + 7*['th'] + ['st'] year = raw_input('Year: ')
month = raw_input('month(1-12): ')
day = raw_input('Day(1-31): ') month_number = int(month)
day_number = int(day) #记得将月份和天数减1,以获得正确的索引
month_number = months[month_number-1]
ordinal = day + endings[day_number-1] print month_number + ' ' + ordinal + ', ' + year
结果
Year: 1985
month(1-12): 2
Day(1-31): 5
February 5th, 1985
- 分片
分片操作可以访问一定范围内的元素,分片通过冒号相隔的两个索引来实现,第一个索引是需要提取部分的第一个元素的编号,而最后的索引则是分片之后剩下部分的第一个元素的编号,如
>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[3:6]
[4, 5, 6]
如果分片所得部分包括序列结尾的元素,那么,只需置空最后一个索引即可,这种方法同样适用于序列开始的元素,如
>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[7:]
[8, 9]
>>> numbers[:3]
[1, 2, 3]
在普通的分片中,步长被隐式设置为1。对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素;而对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素,如
>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[0:3:1]
[1, 2, 3]
>>> numbers[3:0:-1]
[4, 3, 2]
- 相加
加号可以进行序列的连接操作,序列的类型必须相同,如
>>> [4, 3, 2]+[8, 9]
[4, 3, 2, 8, 9]
>>> 'hello '+'world'
'hello world'
>>> [8, 9] + 'world'
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
[8, 9] + 'world'
TypeError: can only concatenate list (not "str") to list
- 相乘
用数字x乘以一个序列会生成新的序列,在新序列中,原来的序列将被重复x次,如
>>> 5 * 'hl'
'hlhlhlhlhl'
[] -- 空列表,里面什么也没有
None -- 里面没有放置任何元素
>>> seq = 10*[None]
>>> seq
[None, None, None, None, None, None, None, None, None, None]
#以正确的宽度在居中的“盒子”内打印一个句子
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 - 4) + '+'
print ' ' * left_margin + '| ' + ' ' * text_width + ' |'
print ' ' * left_margin + '| ' + sentence + ' |'
print ' ' * left_margin + '| ' + ' ' * text_width + ' |'
print ' ' * left_margin + '+' + '-' * (box_width - 4) + '+'
结果
Sentence: He's a very naughty boy!
+--------------------------+
| |
| He's a very naughty boy! |
| |
+--------------------------+
- 成员资格
使用in运算符可以检查一个值是否在序列中,存在返回True,不存在返回False,如
>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> 8 in numbers
True
>>> 34 in numbers
False
- 长度、最小值和最大值
len -- 返回序列中所包含元素的数量
min -- 返回序列中最小的元素
max -- 返回序列中最大的元素
如
>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> len(numbers)
9
>>> min(numbers)
1
>>> max(numbers)
9
《python基础教程》笔记之 序列通用操作的更多相关文章
- python基础教程笔记—即时标记(详解)
最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...
- python基础教程笔记—画幅好画(详解)
今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个 ...
- Python基础教程笔记 第二章
本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列: ...
- python基础教程笔记 第1单元 && 第2单元
1.http://docs.python.org/dev/3.0/whatsnew/3.0.htmlpython-announce-listpython-help2.交互式编译器3.非整数除法 .1. ...
- Python基础教程笔记——第4章:字典
字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_ ...
- Python基础教程笔记——第2章:列表和元组
python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] ...
- Python基础教程笔记 第一章
/ 表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方 例如 2**3 ...
- Python基础教程笔记——第7章:更加抽象(类)
下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: is ...
- Python基础教程笔记——第5章:条件,循环和其他语句
5.1 print和import的更多信息 1. print()3.0之后print不再是语句,而是函数, >>> print('udg',12,13) udg 12 13 &g ...
随机推荐
- 主席树套树状数组 动态区间第k小
先打上代码以后更新解释 #include <cstdio> #include <iostream> #include <algorithm> #include &l ...
- 使用C#开发ActiveX控件 11
C#开发ActiveX控件 ActiveX 是一个开放的集成平台,为开发人员.用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法. 使用 ...
- C#中问号的使用
1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空. 例如:string str=null; 是正确的,int i=null; 编译器就会报错. 为了使值 ...
- Struts2学习笔记(一):Struts2开发环境的配置
一.Struts2应用所需的jar文件. 开发struts2应用需要依赖的jar文件在解压目录下的lib文件夹里面.开发struts2程序最少需要的jar文件为:struts2-core-2.xx.j ...
- springmvc实现REST中的GET、POST、PUT和DELETE
spring mvc 支持REST风格的请求方法,GET.POST.PUT和DELETE四种请求方法分别代表了数据库CRUD中的select.insert.update.delete,下面演示一个简单 ...
- windows 编程 之 问题解决笔记
问题目录: 1.如何隐藏和显示窗口 2.InvalidateRect在连续使用鼠标或光标时暂时不起作用 3.在VC项目里自己添加头文件和cpp文件在编译阶段报错 4.在static 控件里添加子控件或 ...
- centos系统安装中文字体几种方法
我们知道centos是基于linux内核的这款系统默认是不带中文字体了,如果我们要使用中文字体就需要自行安装了,下面一起来看看吧. 前天有用户反应,生成的报到单中他的名字少了一个字.仔细检查了一下 ...
- ceph主要数据结构解析3-Ceph_fs.h文件
(1)集群内部子版本协议类型宏定义:与公共协议保持独立性,以便消息类型和协议升级受影响 #define CEPH_OSDC_PROTOCOL 24 /* server/client */OSD服务 ...
- [Falcor] Intro to JSON Graph
JSON is a very commonly used data interchange format. Unfortunately while most application domain mo ...
- 顺序表JAVA代码
publicclassSeqList{ final int defaultSize =10; //默认的顺序表的最大长度 int maxSize; ...