• 索引

序列中的所有元素都是有编号的--从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. Silverlight获取DataGrid选中的行数据

    注意触发的事件为:CurrentCellChanged后台代码: /// <summary> /// 获取datagrid当前选中的单元格数据 /// 如果绑定的数据源为实体的话默认选中的 ...

  2. 解读sample1

    说明 理解被测试代码 理解测试代码 TEST宏 EXPECT_*断言和ASSERT_*断言 检查数值比较结果的断言 检查布尔值的断言 说明 被测试代码文件 sample1.h.sample1.cc 测 ...

  3. Ubuntu环境下NFS服务器搭建

    看到鸟哥私房菜对NFS的介绍,就想试试玩一下.看起来步骤也很简单. 1.背景名词. NFS(Network File System) 作用:让所有的Unix-like 机器通过网络共享彼此的文件 局限 ...

  4. Asp.Net Mvc+Angular.Js自测小Demo

    参考:http://www.cnblogs.com/eedc/p/6082052.html 一.引用anguler: 1.angular.js 2.angular-route.js 3.app.js ...

  5. implode 多维数组转一维数组并字符串输出

    //多维数组返回一维数组,拼接字符串输出 public function r_implode( $glue, $pieces ) { foreach( $pieces as $r_pieces ) { ...

  6. SKPhysicsContact类

    继承自 NSObject 符合 NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0 ...

  7. ViewPager禁止滑动以及它与内层滑动控件水平方向上事件冲突的解决方法

    一.上图 二.场景描写叙述 最近在做项目的时候.遇到一个怪异的需求,描写叙述例如以下: 1.ViewPager中嵌套3个View,当从View1滑动到View2时禁止ViewPager的滑动事件. 2 ...

  8. JY03-HTML/CSS-京东03

  9. YII框架中php入口文件隐藏

    Apache配置修改 主要修改下httpd文件中的两个地方 1.启用mod_rewrite.so模块,在Apache的配置文件中找到如下行,去掉前面的字符"#",保存 #LoadM ...

  10. WebBrowser控件使用相关

    修改WebBrowser控件的内核解决方案 http://www.cnblogs.com/sung/p/3391264.html C#中的WebBrowser控件的使用 http://www.cnbl ...