摘要:Python基础学习:列表、元组、字典、函数、序列化、正则、模块。

上一节学习了字符串、流程控制、文件及目录操作,这节介绍下列表、元组、字典、函数、序列化、正则、模块。

1.列表

python中的列表list,其实就是shell中的数组:

  name_list=[] #定义一个空列表
  name_list.append('John') #添加数据
  name_list.insert(2,'Jac') #向位置2插入jac
  name_list[1:] #读取从索引1到结束的所有索引值
  name_list[1]='Rain' #修改位置1的值
  name_list.pop(0) #删除列表中第一项,如果为-1则删除最后一项,参数为列表的索引位置
  name_list.remove('Jac'); 删除Jac
  name_list.count('John') 计算John的个数
  'str' in name_list #判断字符串是否在列表中
  name_list.index('Tom') #判断Tom所在位置
  name_list.sort() #列表内容排序
  len(name_list) #获取列表的长度
  type(name_list) #查看类型

字符串转列表:
  a='a b c'
  a.split() #以空格分隔,也可以以其他字符分隔,结果['a','b','c']

2.元组

  name_list=('a','b','c'); #定义元组
  name_list.count('a') #计算个数
  name_list.index('b') #计算位置

元组使用不是很多,如果某些配置文件不可以修改,可以用元组。

3.字典

python中的字典有点像json
定义字典:
  contact_dict={
  "key1";"value1",
  "key2":"value2"
  }

  contact_dict["key1"] #根据key查value
  contact_dict.keys() #查字典所有索引值
  contact_dict.values() #查字典所有值
  contact_dict["key3"]="value3" #若key3存在,则修改值;若不存在,则添加
  contact_dict.popitem() #默认删除字典中第一个

遍历字典:
  for k,v in contact_dict.items():
  print k,v

字典嵌套列表:
  contact_dict={
  "zhangsan":["18","Male"],
  "lisi":"18"
  }

常用的有以上这些,其他方法可以键入:contact_dict.,然后按Tab看所有方法

4.函数

定义:
  def 函数名(参数):
            函数实现

关键参数与默认参数:
  def runCmd(uname,host,command=0):
  print command
  uname,host为关键参数,在函数调用时必须写
  command为默认参数,在函数调用时可以不写

  注:默认参数只能从后往前定义,如:
  def runCmd(uname,host='localhost',command='df')
  print host,command

全局变量:
  函数中可以声明全局变量,可在外部访问
  def globalparam()
  global myparam #定义为全局变量
  myparam='hello world'

  globalparam() #调用函数
  print myparam #调用全局变量

小例子:

import os

username='wll'
ip='localhost'
cmd='df' def runCmd(uname,ip,cmd):
mycmd='ssh %s@%s %s'%(uname,ip,cmd)
print mycmd
os.system(mycmd) runCmd(username,ip,cmd)

5.Pickle序列化

如果内存里面有一个数据结构,希望将它保存下来,重用,或者发送给其他人,这时候可以将数据结构序列化存储在磁盘上
,然后再次调用,或者供其他程序调用。

序列化:
  import pickle
  contact_info={
  "John":[22,'Male','Java'],
  "Tom":[27,'Male','NET'],
  "Alice":[25,'Female','PHP']
  }

  f=file("contact.pkl","wb")
  pickle.dump(contact_info,f) #如果多次执行dump,那么需要多次load才能加载多个dump的信息.所以建议执行一次dump执行一个close
  f.close()

加载序列化:
  import pickle

  pkl_file=open("contact.pkl","rb")
  contact_info=pickle.load(pkl_file)
  pkl_file.close()
  print contact_info

6.正则表达式

判断字符串是否能匹配上:
  import re
  pattern=re.compile(r'hello') #将正则表达式编译为对象
  match=pattern.match('hello world,hello everyone!') #用对象匹配文本
  if match:
       print match.group()

结果: 
      'hello'

分隔或查找字符串:

  import re
  pattern=re.compile(r'\d+') #以一个或多个数字分隔,若换成\D+,以字母分隔
  print pattern.split('1one2two33three444four') #以数字分隔字符串
  print pattern.findall('1one2two33three444four') #查找所有匹配的数字
  pattern=re.compile(r'\D+')
  print pattern.split('1one2two33three444four') #以字母分隔字符串

  结果:
  ['', 'one', 'two', 'three', 'four']
  ['1', '2', '33', '444']
  ['1', '2', '33', '444', '']

替换字符串:
  re.sub('[ap]','Y','happy') #将[]中任何一个都替换为Y
  结果:hYYYy

以上是一些简单的匹配,更复杂的可以到官网查找。

7.模块

python自带有200多个常用模块,官网已收集多个模块,可以在需要的时候去官网查找。
键入python进入命令行模式,
     import sys
     sys.path

可以看到所有python相关的路径。其中有个路径:/usr/lib/python2.7/dist-packages,如果需要在任何路径都可以引用某

个模块,可以把该模块放到这个目录。

python入门到精通[三]:基础学习(2)的更多相关文章

  1. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  2. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  3. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  4. Python运算符,python入门到精通[五]

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...

  5. Python基本语法,python入门到精通[二]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...

  6. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  7. iOS开发-UI 从入门到精通(三)

    iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...

  8. 【UML】NO.70.EBook.9.UML.4.001-【PowerDesigner 16 从入门到精通】- 基础概念

    1.0.0 Summary Tittle:[UML]NO.70.EBook.9.UML.4.001-[PowerDesigner 16 从入门到精通]-  基础概念 Style:DesignPatte ...

  9. Python入门到精通学习书籍推荐!

    1.Python基础教程(第2版 修订版)<Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合 ...

随机推荐

  1. dedecms在首页或列表调取文章内容body的三个方法

    有时需要在网站首页或栏目封面上显示几篇文章的内页作为导语或其他什么的,但acrlist标签是不能直接调取body的,这时我们就需要使用以下方法来调取body. 方法一:arcticle 标签 加上ch ...

  2. Excel大批量导入数据到SQLServer数据库-万条只用1秒

    private string ExcelToStudent() { /*---*/ var preStr = DateTime.Now.ToString("yyyyMMddHHmmssfff ...

  3. PHP静态化

    一.判断大型网站的标准 1.pv值(page views)网站浏览量: 概念:一个网站,所有的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上. 2.uv值(unique visit ...

  4. 11.static关键字

    1.用static修饰的方法,直接用类调用 2.static修饰的方法只能调用static方法,不能调用非  static属性和方法 ①因为static属性和方法在类没有实例化的时候调用 ②因为普通属 ...

  5. Java中线程的生命周期

    首先简单的介绍一下线程: 进程:正在运行中的程序.其实进程就是一个应用程序运行时的内存分配空间. 线程:其实就是进程中的一条执行路径.进程负责的是应用程序的空间的标示.线程负责的是应用程序的执行顺序. ...

  6. MySQL每天自动增加分区

    有一个表tb_3a_huandan_detail,每天有300W左右的数据.查询太慢了,网上了解了一下,可以做表分区.由于数据较大,所以决定做定时任务每天执行存过自动进行分区. 1.在进行自动增加分区 ...

  7. java和js根据一个或者多个空格截取字符串

    java: String str = "张三 fw1234"; String s[] = str.split("\\s+"); js: var str=&quo ...

  8. 使用XML文件记录操作日志,并从后往前读取操作日志并在richTextBox1控件中显示出来

    #region 获取本地程序操作记录日志 /// <summary> /// 获取本地程序更新日志信息(由后往前读取) /// </summary> private void ...

  9. Java实现MySQL数据库导入

    距离上班还有一段时间.现在总结一下如何使用Java语言实现MySQL数据库导入: 首先新建名为test的数据库: 其次执行下面Java代码: import java.io.File; import j ...

  10. 不小心删除了sysWOW64下的webio.dll

    weibo的桌面客户端留了一个服务,在syswow64目录下留了个exe文件,看着旁边好像还有个weibo.dll,就把试着也删除了,但是删除不掉,我就进安全模式删除了(f8在Windows的启动界面 ...