python学习笔记(5)

转载 2015年11月20日 23:27:50

字符串基本操作

  所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作。但是,请注意字符串都是不可变的。

 字符串的方法:

字符串从string 模块中“继承”了很多方法,这里只介绍一些特别有用的。

1find 

find 方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1.

复制代码
>>> 'with a moo-moo here. and a moo-moo ther'.find('moo')
7
>>> title = "Monty Pyhon's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('Python')
-1
复制代码

2、join

join 方法是非常重要的字符串方法,它是split方法的逆方法,用来在队列中添加元素:

复制代码
>>> seq = ['1','2','3','4','5']
>>> sep = '+'
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> print 'C:' + '\\'.join(dirs)
C:\usr\bin\env
复制代码

3、lower

lower 方法返回字符串的小写字母版。

如果想要编写“不区分大小写”的代码的话,那么这个方法就派上用场了-----代码会忽略大小写状态。

>>> 'Trondheim Hammer Dance'.lower()
'trondheim hammer dance'

4、replace 

replace 方法返回某字符串的所有匹配项均被替换之后得到字符串。

>>> 'This is a test'.replace('is','eez')
'Theez eez a test'

如果,你使用过文字处理工具里的“查找并替换”功能的话,就不会质疑这个方法的用处了。

5、split

这是一个非常重要的方法,它是join的逆方法,用来将字符串分割成序列。

复制代码
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
>>> 'using the default'.split()
['using', 'the', 'default']
复制代码

6、strip 

strip 方法返回去除两侧(不包含内部)空格的字符串:

>>> '      internal white space is kept    '.strip()
'internal white space is kept'

 字典

 字典的使用

现实中的字段及在python中的字段都进行了构建,从而可以轻松查到某个特定的词语(键),从而找到它的意义(值)。

某些情况下,字典比列表更加适用:

#  表征游戏棋盘的状态,每个键都是由坐标值组成的元组;

#  存储文件修改次数,用文件名作为键; 

#  数字电话/地址本

创建一个人名列表,以及四位的分机号码:

>>> names = ['zhangsan','lisi','wangwu','sunliu']
>>> numbers = ['2313','9102','3158','4326']
#通过下下方法查询
>>> numbers[names.index('zhangsan')]
'2313'

 

创建和使用字典

字典可以通过下面方式创建

>>> phonebook = {'zhangsai':'2313','lisi':'9102','wangwu':'3158'}

字典由多个键及与其对应的值构成,在上例中,名字是键,电话号码是值。

 dict函数

可以用dict 函数,通过其他映射(比如其他字典)或(键,值)这样的序列对建立字典。

复制代码
>>> items = [('name','gumby'),('age',42)]
>>> d = dict(items)
>>> d
{'age': 42, 'name': 'gumby'}
>>> d['name']
'gumby'
复制代码

dict函数也可以通过关键字参数来创建字典,如下例所示:

>>> d = dict(name ='gumby', age=42)
>>> d
{'age': 42, 'name': 'gumby'}

 字典示例:

复制代码
#简单数据库

#使用人名作为键的字典,每个人用另一个字典表示,其键‘phone’和‘addr’分别表示他们的电话号和地址,

people ={
    'zhangsan':{
        'phone':'2341',
        'addr':'foo drive 23'
    },
    'lisi':{
        'phone':'9102',
        'addr':'bar street 42'
        },
   'wangwu':{
        'phone':'3158',
        'addr':'baz avenue 90'
        }
    }

#针对电话号码和地址使用的描述性标签,会在打印输出的时候用到

labels = {
    'phone':'phone number',
    'addr':'address'
    }
name = raw_input('Name:')

#查找电话号码还是地址? 使用正确的键:
request = raw_input('phone number(p) or address (a)?')
#使用正确的键:
if request == 'p':key = 'phone'
if request == 'a':key = 'addr'

#如果名字是字典中的有效键才打印信息:
if name in people: print "%s's %s is %s." %(name, labels[key], people[name][key])

------------------------
#输入内容
>>> 
Name:zhangsan
phone number(p) or address (a)?p
#打印结果
zhangsan's phone number is 2341.
复制代码

相关文章推荐

Python学习笔记5

  • 2016-09-30 16:06
  • 2.41MB
  • 下载

python 学习笔记5

现在我们看看python 中字符串有哪些功能,还有如何进行输入输出,文件读取和写入 字符串的操作 下面我随意新建一个字符串,看看字符串可以进行哪些操作 >>> mystring='dsffk...

python学习笔记5

Dive into Python 第一个例子程序:apihelper.py 程序和它的输出现在应该非常清晰了。 def info(object, spacing=10, colla...

【caffe学习笔记之5】Win10系统下Caffe的Python接口设置方法并绘制网络结构图

【准备工作】 前面几节介绍了win10系统下caffe-master的配置方法以及cifar10数据集的训练方法,并简要介绍了Matlab接口如何配置。想要更为形象的了解caffe框架下诸多网络模型的...

Python 学习笔记(5) -数据类型 1

在内存中存储的数据可以有多种类型,以下是Python五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) ...

python学习笔记2.4-数据结构之列表和元组

python语言中包含的数据结构比较简单,除了简单的变量以外,还有列表(元组)、字典、集合。对于数据结构的操作一般包含四种:增、删、查、改。本文主要介绍列表(list)(包括元组tuple)的操作。 ...

python 学习笔记 5 -- 文件输入输出

本文主要介绍python下的文件输入输出操作,python的文件操作简单易用~痛过本文相信你可以熟练掌握file和pickle这两种输入输出操作! 1.文件 你可以通过创建一个file类的对象来打...

Python3 cookbook学习笔记-数据结构与算法5

排序不支持原生比较的对象问题: 你想排序类型相同的对象,但是他们不支持原生的比较操作。解决方案: 内置的sorted函数有一个关键字参数key,可以传入一个callable对象给它,这个calla...

Python学习笔记 - 5.字符串(find方法,格式操作符%)

字符串是字符的序列使用方括号运算符逐一访问每个字符。方括号里的表达式称为索引。 在Python中, 索引是从字符串头部算起的一个偏移量, 第一个字母的 偏移量为0。另一种方法是使用负索引, 从字符...

Python学习笔记(5)-多重继承的坑

之前学习了下多重继承,以为领悟到了,没想到实际在项目中傻眼了。 忘了一个关键的地方: 正文 首先得说明的是,Python的类分为经典类 和 新式类 经典类是python2.2之前的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)