python基础学习笔记(五)

系统 1622 0

python基础学习笔记(五)

2013-04-20 14:05  虫师 阅读( ... ) 评论( ... ) 编辑 收藏

 

字符串基本操作

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

 

字符串的方法:

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

 

1 find 

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.

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论