2. 元组

    tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义;支持索引和切片操作;可以使用 in

  查看一个元素是否在tuple中。空元组();只含有一个元素的元组("a",) #需要加个逗号

    优点:tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全

    tuple与list可以相互转换,使用内置的函数list()和tuple()。

l = [1, 2, 3]
print l # [1, 2, 3] t = tuple(l)
print t # (1, 2, 3) l1 = list(t)
print l1 #[1, 2, 3]

    元组最通常的用法是用在打印语句,如下例:

name = "Peter Zhang"
age = 25
print "Name: %s; Age: %d" % (name, age)
# Name: Peter Zhang; Age: 25

    函数如下:

    count(value)  ---返回元组中值为value的元素的个数

t = (1, 2, 3, 1, 2, 3)

print t.count(2) # 2

    index(value, [start, [stop]])  ---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError

t = (1, 2, 3, 1, 2, 3)

print t.index(3) # 2
try:
print t.index(4)
except ValueError, ve:
print "there is no 4 in tuple" # there is no 4 in tuple

  3. 字典

    字典由键值对组成,键必须是唯一的;eg: d = {key1:value1, key2:value2};空字典用{}表示;字典中的键值对是没有顺序的,如果想要

  一个特定的顺序,那么使用前需要对它们排序;d[key] = value,如果字典中已有key,则为其赋值为value,否则添加新的键值对key/value;使

  用del d[key] 可以删除键值对;判断字典中是否有某键,可以使用in 或 not in;

d = {}
d["1"] = "one"
d["2"] = "two"
d["3"] = "three" del d["3"] for key, value in d.items():
print "%s --> %s" % (key, value)
#1 --> one
#2 --> two

    dict函数如下:

    clear()  ---删除字典中所有元素

d1 = {"1":"one", "2":"two"}
d1.clear() print d1 # {}

    copy()  ---返回字典的一个副本(浅复制)

d1 = {"1":"one", "2":"two"}
d2 = d1.copy() print d2 #{'1': 'one', '2': 'two'}

    dict.fromkeys(seq,val=None) ---创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)

l = [1, 2, 3]
t = (1, 2, 3) d3 = {}.fromkeys(l)
print d3 #{1: None, 2: None, 3: None} d4 = {}.fromkeys(t, "default")
print d4 #{1: 'default', 2: 'default', 3: 'default'}

    get(key,[default])  ---返回字典dict中键key对应值,如果字典中不存在此键,则返回default 的值(default默认值为None)

d5 = {1:"one", 2:"two", 3:"three"}

print d5.get(1) #one
print d5.get(5) #None
print d5.get(5, "test") #test

    has_key(key)  ---判断字典中是否有键key

d6 = {1:"one", 2:"two", 3:"three"}

print d6.has_key(1)  #True
print d6.has_key(5) #False

    items()  ---返回一个包含字典中(键, 值)对元组的列表

d7 = {1:"one", 2:"two", 3:"three"}

for item in d7.items():
print item
#(1, 'one')
#(2, 'two')
#(3, 'three') for key, value in d7.items():
print "%s -- %s" % (key, value)
#1 -- one
#2 -- two
#3 -- three

    keys()  ---返回一个包含字典中所有键的列表

d8 = {1:"one", 2:"two", 3:"three"}

for key in d8.keys():
print key
#1
#2
#3

    values()  ---返回一个包含字典中所有值的列表

d8 = {1:"one", 2:"two", 3:"three"}

for value in d8.values():
print value
#one
#two
#three

    pop(key, [default])  ---若字典中key键存在,删除并返回dict[key],若不存在,且未给出default值,引发KeyError异常

d9 = {1:"one", 2:"two", 3:"three"}
print d9.pop(1) #one
print d9 #{2: 'two', 3: 'three'}
print d9.pop(5, None) #None
try:
d9.pop(5) # raise KeyError
except KeyError, ke:
print "KeyError:", ke #KeyError:5

    popitem()  ---删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyError

d10 = {1:"one", 2:"two", 3:"three"}

print d10.popitem()  #(1, 'one')
print d10 #{2: 'two', 3: 'three'}

    setdefault(key,[default])  ---若字典中有key,则返回vlaue值,若没有key,则加上该key,值为default,默认None

d = {1:"one", 2:"two", 3:"three"}

print d.setdefault(1)  #one
print d.setdefault(5) #None
print d #{1: 'one', 2: 'two', 3: 'three', 5: None}
print d.setdefault(6, "six") #six
print d #{1: 'one', 2: 'two', 3: 'three', 5: None, 6: 'six'}

    update(dict2)  ---把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值

d = {1:"one", 2:"two", 3:"three"}
d2 = {1:"first", 4:"forth"} d.update(d2)
print d #{1: 'first', 2: 'two', 3: 'three', 4: 'forth'}

    viewitems()  ---返回一个view对象,(key, value)pair的列表,类似于视图。优点是,如果字典发生变化,view会同步发生变化。在

  迭代过程中,字典不允许改变,否则会报异常

d = {1:"one", 2:"two", 3:"three"}
for key, value in d.viewitems():
print "%s - %s" % (key, value)
#1 - one
#2 - two
#3 - three

    viewkeys()  ---返回一个view对象,key的列表

d = {1:"one", 2:"two", 3:"three"}
for key in d.viewkeys():
print key
#1
#2
#3

    viewvalues()  ---返回一个view对象,value的列表

d = {1:"one", 2:"two", 3:"three"}
for value in d.viewvalues():
print value
#one
#two
#three

  4. 序列

    序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是

  索引操作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;

 1 numbers = ["zero", "one", "two", "three", "four"]
2
3 print numbers[1] # one
4 print numbers[-1] # four
5 #print numbers[5] # raise IndexError
6
7 print numbers[:] # ['zero', 'one', 'two', 'three', 'four']
8 print numbers[3:] # ['three', 'four']
9 print numbers[:2] # ['zero', 'one']
10 print numbers[2:4] # ['two', 'three']
11 print numbers[1:-1] # ['one', 'two', 'three']

    切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。 如果不指定第一个数,Python就从

  序列首开始。如果没有指定第二个数,则Python会停止在序列尾。 注意,返回的序列从开始位置 开始 ,刚好在结束位置之前 结束。即开始位置是

  包含在序列切片中的,而结束位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开始计算的位置。
  5. 绑定

    当创建一个对象并给它赋一个变量的时候,这个变量仅仅“指向”那个对象,而不是表示这个对象本身! 也就是说,变量名指向计算机中存储那个

  对象的内存,这被称作名称到对象的绑定

    如果要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象),那么必须使用切片操作符来取得拷贝。

python基础语法(2)的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  3. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  4. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  5. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  6. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  7. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  10. python学习第三讲,python基础语法之注释,算数运算符,变量.

    目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...

随机推荐

  1. pH 值与曝气对硝化细菌硝化作用的影响

    http://wenku.baidu.com/view/c2723434eefdc8d376ee325d.html 摘要: 目的 探讨硝化细菌最佳工作条件,为应用和生产提供依据. 方法 通过人工调节液 ...

  2. 如何用js刷新aspxgridviw

    //写在js中 ASPxGridView1.Refresh();

  3. ios8 滚动事件解放了

    http://developer.telerik.com/featured/scroll-event-change-ios-8-big-deal/ 这是外国人写的一篇文章,我这里直接贴了一个链接,敢兴 ...

  4. js动态改变时间

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  5. 自定义UITableViewCell

    随着日常的使用,系统提供的cell已经不能满足开发的需要,因为系统提供的是单一的,所以 这就引来了自定义cell的出现,可以根据 自己的需要来布局各个控件所处的位置.不同位置显示不同的控件. 创建一个 ...

  6. ajax XML

    <script src="jquery-1.11.2.min.js"></script> </head> <body> <se ...

  7. 8天掌握EF的Code First开发系列之2 简单的CRUD操作

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...

  8. Android之使用Android-AQuery异步加载图片(一)

    第一节:转载地址(http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2738299.html) // 必须实现AQuery这个类 AQuery aq ...

  9. WebForm 简单控件、复合控件

    简单控件: Label:被编译成span 样式表里设置lable的高度:  display:inline-block; Text  --文本 ForeColor  --字体颜色 Visible  -- ...

  10. struts2各个jar包的作用

    ---------------------------------------------------struts2核心jar包------------------------------------ ...