• 索引

序列中的所有元素都是有编号的--从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) + '+'
print

结果

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基础教程》笔记之 序列通用操作的更多相关文章

  1. python基础教程笔记—即时标记(详解)

    最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...

  2. python基础教程笔记—画幅好画(详解)

    今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个 ...

  3. Python基础教程笔记 第二章

    本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列: ...

  4. python基础教程笔记 第1单元 && 第2单元

    1.http://docs.python.org/dev/3.0/whatsnew/3.0.htmlpython-announce-listpython-help2.交互式编译器3.非整数除法 .1. ...

  5. Python基础教程笔记——第4章:字典

    字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_ ...

  6. Python基础教程笔记——第2章:列表和元组

    python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] ...

  7. Python基础教程笔记 第一章

    /  表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方  例如 2**3    ...

  8. Python基础教程笔记——第7章:更加抽象(类)

    下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: is ...

  9. Python基础教程笔记——第5章:条件,循环和其他语句

    5.1 print和import的更多信息 1. print()3.0之后print不再是语句,而是函数, >>> print('udg',12,13)   udg 12 13 &g ...

随机推荐

  1. Linux下视频转换工具:转换,切割,连接,

    首先当然是需要安装ffmpeg软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装ffmpeg: (1)下载ffmpeg源码包,注意版本不能太 ...

  2. COJN 0485 800503寻找平面上的极大点

    800503寻找平面上的极大点 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 在一个平面上,如果有两个点(x,y),(a,b) ...

  3. 【二分】Codeforces 706B Interesting drink

    题目链接: http://codeforces.com/problemset/problem/706/B 题目大意: n (1 ≤ n ≤ 100 000)个商店卖一个东西,每个商店的价格Ai,你有m ...

  4. python_Opencv_图像的基础操作

    目标 获取像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 为图像扩充边缘 几乎所有以上的操作,与Numpy 的关系都比与OpenCV 的关系更加紧密,因此熟练Numpy ...

  5. ssh端口映射,本地转发

    应用场景: # HOSTA<-X->HOSTB 表示A,B两机器相互不可以访问,  HOSTA<-->HOSTB 表示A,B两机器可以相互访问# 1.localhost< ...

  6. win7 vs2010 安装cocos2d-x

    http://blog.csdn.net/leoncoder/article/details/12523727 新安装搭建cocos2d-X的跳过这里,看以下红色開始: cocos2d-x删除vs20 ...

  7. HDU 5266 pog loves szh III (线段树+在线LCA转RMQ)

    题目地址:HDU 5266 这题用转RMQ求LCA的方法来做的很easy,仅仅须要找到l-r区间内的dfs序最大的和最小的就能够.那么用线段树或者RMQ维护一下区间最值就能够了.然后就是找dfs序最大 ...

  8. Cocos2D-X2.2.3学习笔记12(瞬间动作)

    到眼下我们已经学习了有 坐标系统 内存管理 UI系统 事件处理 几何图形 今天我们来学习动作管理OK 我们来看看类结构图 CCAction   全部动作的基类 以下派生了三个子类:CCFiniteTi ...

  9. Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项

    本文首先总结一下Bitmap的相关概念,然后通过一个实际的问题来分析设置BitmapFactory.options的注意事项,以减少不必要的内存占用率,避免发生OOM. 一. Bitmap的使用tri ...

  10. Java基础知识强化之IO流笔记03:throws的方式处理异常

    1. 什么时候使用throws ? (1)定义功能方法时候,需要把出现的问题暴露出来,让调用者去处理.那么就通过throws在方法上标识. (2)有时候,我们是可以对异常进行处理的,但是又有些时候,我 ...