str字符串

  • 表达:单引号,双引号,反斜杠
  1. 'let\'s go.' #只使用单引号,外部使用单引号,内部单引号用反斜杠
  2. "let's go. " #单双引号混合使用
  • 长字符串

使用三个单引号或者三个双引号将字符串括起来就是长字符串。内部可以同时使用单引号和双引号,而不需要加反斜杠。

  • 原始字符串

在原始字符串中,输入的每个字符都会与书写的方式保持一致。表示方式:原始字符串以r开头。

  1. >>> print 'he \n ee' #普通字符串,会直接体现换行符
  2. he
  3. ee
  4. >>> print r'he \n ee' # 原始字符串,打印输入的数据
  5. he \n ee
  • 跨越多行
  1. >>> '''dddd
  2. ... dddd
  3. ... dddd'''
  4. 'dddd\ndddd\ndddd' #跨行打印,将换行符作为字符串一部分
  5. >>> '''ddd\
  6. ... ddd\
  7. ... ddd'''
  8. 'ddddddddd' #加上反斜杠,忽略换行符
  9. >>> 1+2+3\
  10. ... +4+5
  11. 15 #适用于表达式
  • 打印字符串
  1. print 'hello', #尾部的逗号,避免print语句自动添加换行符
  • 操作
  1. "hello " + str(3) # 不可直接将字符串与数字相加,使用str(3)、repr(3)或反引号。
  2. #repr(x)和反引号将对象转为合法的python表达式。
  3. repr(3+4) #结果为 '7'
  4. #raw_input()和input()的区别在于,前者输入的数据为字符串,后者输入的是python表达式.如,raw_input()/input()之后输入3+4,返回'3+4'/7.

序列

python有6种內建的序列:列表,元组,字符串,unicode字符串,buffer对象和xrange对象。 常用的是列表和元组,主要区别在于列表可以修改,而元组不能修改。所以,列表不可以作为字典的键,而元组可以。 通用序列操作有:索引,分片,加,乘,是否包含。

索引和分片

  1. >>> numbers = [1,2,3,4,5]
  2. >>> numbers[:] #开始索引为空,表示从序列头部开始;结束索引为空,表示到序列尾部
  3. [1, 2, 3, 4, 5]
  4. >>> numbers[-1:] #-1表示最后一个元素位置,左闭右开区间
  5. [5]
  6. >>> numbers[-1:1] #如果开始索引大于结束索引,返回空列表
  7. []
  8. >>> numbers[0:3:2] #第三个参数表示步长
  9. [1, 3]
  10. >>> numbers[::-2] #步长为负数,表示从右到左。步长不能为0
  11. [5, 3, 1]
  12. >>> numbers[5:1:-2] #步长为负数,表示从右到左。
  13. [5, 3]

序列相加

两种相同类型的序列才可以相加。

  1. >>> [1,2,3] + [4,5]
  2. [1, 2, 3, 4, 5]
  3. >>> 'hello ' + ' world'
  4. 'hello world'

序列乘法

  1. >>> (1,2,3) * 3 #3表示重复的次数
  2. (1, 2, 3, 1, 2, 3, 1, 2, 3)
  3. >>> [None] * 3 #初始化长度为3的列表,None表示这里什么都没有。
  4. [None, None, None]
  5. >>> (None)*3 #元组不可以初始化,因为元组是不可修改的
  6. Traceback (most recent call last):
  7. File "<stdin>", line 1, in <module>
  8. TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

其他:成员资格(是否包含),长度,最大/小值,转化

  1. >>> a = ['one', 'two', 'three']
  2. >>> 'one' in a
  3. True #返回bool值
  4. #用于列表
  5. >>> b = [['1','one'], ['2','two'], ['3', 'three']]
  6. >>> ['4', 'four'] in b
  7. False
  8. >>> ['1', 'one'] in b
  9. True
  10. >>> len(b) #长度
  11. 3
  12. >>> max(a) #最大值
  13. 'two'
  14. >>> min(a) #最小值
  15. 'one'
  16. >>> tuple([1,2,3]) #将序列转为元组
  17. (1, 2, 3)
  18. >>> tuple('hello')
  19. ('h', 'e', 'l', 'l', 'o')
  20. >>> list((1,2,3)) #将序列转为列表
  21. [1, 2, 3]

列表

  1. >>> a=[1,2,3,4,5]
  2. >>> a[1] = -2 #赋值
  3. >>> a
  4. [1, -2, 3, 4, 5]
  5. >>> del a[0] #删除元素
  6. >>> a
  7. [-2, 3, 4, 5]
  8. >>> a[1:] = [-3,-4,-5,-6,-7] #分片赋值,长度可以不等
  9. >>> a
  10. [-2, -3, -4, -5, -6, -7]
  11. >>> a[0:0]=[0,-1] #通过分片赋值来插入元素
  12. >>> a
  13. [0, -1, -2, -3, -4, -5, -6, -7]
  14. >>> a[4:]=[] #通过分片赋值来删除元素,相当于del a[4:]
  15. >>> a
  16. [0, -1, -2, -3]

以下方法都会改变列表本身

  • append方法直接修改原参数
  • count方法统计元素出现的次数
  • extend 列表结尾追加另一个列表
  • index查询元素在列表中第一次出现的位置
  • insert插入对象到列表
  • pop移除元素,默认最后一个
  • remove移除列表中某个值的第一个匹配项
  • reverse将列表中元素的值反序存放
  • sort 在原位置对列表进行排序。参数有cmp,key, reverse
  1. >>> a
  2. [0, -1, -2, -3]
  3. >>> a=[1]
  4. >>> a+[2]
  5. [1, 2]
  6. >>> a
  7. [1]
  8. >>> a.extend([2]) #extend操作的是两个列表
  9. >>> a
  10. [1, 2]
  11. >>> a.append(3) #append追加的是一个值,类似于栈的push方法
  12. >>> a
  13. [1, 2, 3] #a的值修改了
  14. >>> x=[1,2,[1,2]]
  15. >>> x.count(1) #元素1,元素2,元素[1,2]
  16. 1
  17. >>> x.index([1,2]) #index查询元素在列表中第一次出现的位置
  18. 2
  19. >>> x.insert(3,'hi') #insert插入对象到列表
  20. >>> x
  21. [1, 2, [1, 2], 'hi']
  22. >>> x.pop(0) #pop移除元素,默认最后一个
  23. 1
  24. >>> x
  25. [2, [1, 2], 'hi']
  26. >>> x=[1,3,5,2,4]
  27. >>> x.sort(reverse=True) #倒叙排序
  28. >>> x
  29. [5, 4, 3, 2, 1]
  30. >>> x=['qw22','de','3edf', 'w']
  31. >>> x.sort(key=len) #按照元素的长度排序
  32. >>> x
  33. ['w', 'de', 'qw22', '3edf']
  • 列表赋值
  1. >>> x=[1,3,5,2,4]
  2. >>> y=x # 直接将x复制给y,x和y会指向同一个列表
  3. >>> y.sort()
  4. >>> x
  5. [1, 2, 3, 4, 5]
  6. >>> y
  7. [1, 2, 3, 4, 5]
  8. >>>
  9. >>>
  10. >>> x=[1,3,5,2,4]
  11. >>> y=x[:] #这样才是拷贝一个x的副本,并赋值给y
  12. >>> y.sort()
  13. >>> x
  14. [1, 3, 5, 2, 4]
  15. >>> y
  16. [1, 2, 3, 4, 5]
  17. >>> x=[3,2,5,1]
  18. >>> y=sorted(x) #获取一个已排序的列表副本,方法二
  19. >>> x
  20. [3, 2, 5, 1]
  21. >>> y
  22. [1, 2, 3, 5]

元组

元组不能修改。

  1. >>> () #创建空元组
  2. ()
  3. >>> 23, #创建一个元素的元组,逗号必须有
  4. (23,)
  5. >>> (23,) #创建一个元素的元组,逗号必须有
  6. (23,)
  7. >>> x=1,2,3
  8. >>> x
  9. (1, 2, 3)

python笔记之序列的更多相关文章

  1. python笔记(1)--序列(列表 元组 range)

    一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...

  2. MOOC python笔记(三) 序列容器:字符串、列表、元组

    容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...

  3. python笔记(2)--字符串

    一.字符串 字符串是不可变序列,具有序列的公共操作方法,具体操作见python笔记(1)--序列(列表 元组 range) 1.创建字符串 单引号:'Hello , I am Logan ! ' 双引 ...

  4. 《python基础教程》笔记之 序列通用操作

    索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...

  5. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  6. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

  7. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  8. python笔记之中缀语法和管道实现

    python笔记之中缀语法和管道实现 你知道什么是中缀语法吗?你知道python中的中缀操作是什么吗?那你知道操作python也是可以像unix的管道符一样方便吗?那么,废话不说了,直接上代码. cl ...

  9. python笔记之itertools模块

    python笔记之itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生 ...

随机推荐

  1. 发布iOS应用时,Xcode报错:Application failed codesign verification.

    如下图,在发布应用时,因为codesign问题卡住了.尝试修改Target中的code sign setting,没有效果. 接着,在Developer Center删除所有证书,甚至包括Apps I ...

  2. keepalived双机热备nginx

    nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...

  3. FineUIPro控件库深度解析

    FineUIPro控件库 FineUIPro是一套基于jQuery的专业ASP.NET控件库,始于2008年的开源版FineUI控件库. 当年为了提升项目的开发效率,降低代码复杂度,减少对CSS和Ja ...

  4. Luogu P1596 [USACO10OCT]湖计数Lake Counting

    题目描述 Due to recent rains, water has pooled in various places in Farmer John's field, which is repres ...

  5. ubuntu网络设置及遇到问题

    1.在ubuntu下面显示有线网络设备未托管 解决:在ubuntu下面输入:sudo  gedit   /etc/NetworkManager/nm-system-settings.conf然后将里面 ...

  6. 分布式mysql中间件(mycat)

    1.   MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中 ...

  7. 关于echarts

    昨天随手玩了下echarts,看见同事纠结于echarts的兼容问题. 最简单的echarts(官网的): <div id="main" style="width: ...

  8. bootrom的构成

    bootrom的构成 在开发阶段,VxWorks 操作系统大多采用bootrom+ VxWorks 方式启动,即下载型方式进行.一方面,由于VxWorks本身调试的需要,另一方面,bootrom相比V ...

  9. 错误代码: 1327 Undeclared variable: p_film_count

    1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT FOUND_ROWS() INTO p_film_count ...

  10. 草料Chrome浏览器插件,让二维码更好用

    安装插件草料chrome插件,是专为chrome核心的浏览器开发的一个二维码应用增强工具插件. 自动将地址栏链接生成二维码 以谷歌原生的chrome浏览器为例,插件安装成功后会在浏览器地址栏旁边出现一 ...