str字符串

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

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

  • 原始字符串

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

>>> print 'he \n ee'  #普通字符串,会直接体现换行符
he 
 ee
>>> print r'he \n ee'  # 原始字符串,打印输入的数据
he \n ee
  • 跨越多行
>>> '''dddd
... dddd
... dddd'''
'dddd\ndddd\ndddd'  #跨行打印,将换行符作为字符串一部分

>>> '''ddd\
... ddd\
... ddd'''
'ddddddddd'  #加上反斜杠,忽略换行符

>>> 1+2+3\
... +4+5
15  #适用于表达式
  • 打印字符串
print 'hello',  #尾部的逗号,避免print语句自动添加换行符
  • 操作
 "hello " + str(3)  # 不可直接将字符串与数字相加,使用str(3)、repr(3)或反引号。
 #repr(x)和反引号将对象转为合法的python表达式。
 repr(3+4)  #结果为  '7'
 #raw_input()和input()的区别在于,前者输入的数据为字符串,后者输入的是python表达式.如,raw_input()/input()之后输入3+4,返回'3+4'/7.

序列

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

索引和分片

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

序列相加

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

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

序列乘法

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

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

>>> a = ['one', 'two', 'three']
>>> 'one' in a
True    #返回bool值
#用于列表
>>> b = [['1','one'], ['2','two'], ['3', 'three']]
>>> ['4', 'four'] in b
False
>>> ['1', 'one'] in b
True
>>> len(b)  #长度
3
>>> max(a)  #最大值
'two'
>>> min(a)  #最小值
'one'

>>> tuple([1,2,3])  #将序列转为元组
(1, 2, 3)
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> list((1,2,3))  #将序列转为列表
[1, 2, 3]

列表

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

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

  • append方法直接修改原参数
  • count方法统计元素出现的次数
  • extend 列表结尾追加另一个列表
  • index查询元素在列表中第一次出现的位置
  • insert插入对象到列表
  • pop移除元素,默认最后一个
  • remove移除列表中某个值的第一个匹配项
  • reverse将列表中元素的值反序存放
  • sort 在原位置对列表进行排序。参数有cmp,key, reverse
>>> a
[0, -1, -2, -3]
>>> a=[1]
>>> a+[2]
[1, 2]
>>> a
[1]
>>> a.extend([2]) #extend操作的是两个列表
>>> a
[1, 2]
>>> a.append(3)  #append追加的是一个值,类似于栈的push方法
>>> a
[1, 2, 3]   #a的值修改了

>>> x=[1,2,[1,2]]
>>> x.count(1)  #元素1,元素2,元素[1,2]
1
>>> x.index([1,2]) #index查询元素在列表中第一次出现的位置
2
>>> x.insert(3,'hi')  #insert插入对象到列表
>>> x
[1, 2, [1, 2], 'hi']

>>> x.pop(0)  #pop移除元素,默认最后一个
1
>>> x
[2, [1, 2], 'hi']

>>> x=[1,3,5,2,4]
>>> x.sort(reverse=True)  #倒叙排序
>>> x
[5, 4, 3, 2, 1]
>>> x=['qw22','de','3edf', 'w']
>>> x.sort(key=len)  #按照元素的长度排序
>>> x
['w', 'de', 'qw22', '3edf']
  • 列表赋值
>>> x=[1,3,5,2,4]
>>> y=x    # 直接将x复制给y,x和y会指向同一个列表
>>> y.sort()
>>> x
[1, 2, 3, 4, 5]
>>> y
[1, 2, 3, 4, 5]
>>> 
>>> 
>>> x=[1,3,5,2,4]
>>> y=x[:]  #这样才是拷贝一个x的副本,并赋值给y
>>> y.sort()
>>> x
[1, 3, 5, 2, 4]
>>> y
[1, 2, 3, 4, 5]

>>> x=[3,2,5,1]
>>> y=sorted(x)  #获取一个已排序的列表副本,方法二
>>> x
[3, 2, 5, 1]
>>> y
[1, 2, 3, 5]

元组

元组不能修改。

>>> ()   #创建空元组
()
>>> 23,   #创建一个元素的元组,逗号必须有
(23,)
>>> (23,)    #创建一个元素的元组,逗号必须有
(23,)
>>> x=1,2,3
>>> x
(1, 2, 3)
posted on 2017-01-22 18:16  漫夭  阅读(384)  评论(0编辑  收藏  举报