Chinaunix首页 | 论坛 | 博客
  • 博客访问: 567885
  • 博文数量: 213
  • 博客积分: 6789
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-01 17:11
文章分类

全部博文(213)

文章存档

2012年(9)

2011年(62)

2010年(99)

2009年(43)

分类: Python/Ruby

2009-11-30 17:59:33

Dictionary
Dictionary是python的内置数据类型之一,定义了键和值之间的一对一关系。
d = {"server":"checl", "database":"master"}
         key      :  value  
能通过key 找到value,但不能通过value,找到key。
特点:
1 区分大小写,key 与Key不同。
2 可以是任何字符类型
删除
删除1个元素
del d["server"]
删除所有元素
d.clear()

List
li = ["a", “b”, "mpilgrim", "z", "example"]
li[0]
'a'
li[4]
'example'
li[-1]
'example'
li[1:3]
从序号为1的索引开始,到序号为3的索引结束,不包括3。
li[:3]
左侧索引默认为0
li[3:]
右侧索引默认为list长度
li[:]
所有元素

向list中增加元素。
li.append("new", “a")
向list末尾追加list, 不是两个单个元素。
li.insert(2, "new")
第一个数是位置,第二个数是要插入的元素
注:可以有两个独立的元素具有同样的值,例如:{'a','b','a'}
li.extend('d','e')
把extend中的每个元素搬到list中。

在list中搜索。
li.index("a")
0
查找1个值,首次出现返回索引值。
li.index("c")
Traceback(innermost last): ....
"c" in li
False
测试出现,如果存在返回True,失败返回False(注意大小写)。

0 为 为 false; 其它所有数值皆为 true。
·空串 ("") 为 false; 其它所有字符串皆为 true。
·空 list ([]) 为 false; 其它所有 list 皆为 true。
·空 tuple (()) 为 false; 其它所有 tuple 皆为 true。
·空 dictionary ({}) 为 为 false; 其它所有 其它所有 dictionary 皆为 true。

删除元素
li.remove("z")
删除一个值的首次出现(有两个删除1个)。如果没有产生异常。
li.pop()
删除list最后1个元素,然后返回删除元素的值。

运算符
li += [3]
li = li + 3
li可以用+运算符连接起来。li = li+otherlist

li = [1,2]
li=li*3
li = [1,2,1,2,1,2]

Tuple
Tuple是不可改变的list,一旦建了tuple,就不能以任何形式改变他。
t = ("a", "b", "c")
t[1,3]
('a', 'b')
用小括号,当分割一个tuple时候,得到一个新的tuple
advantage
1 tuple比list速度快。
2 对数据进行写保护。
3 可以用在字符串格式中


变量声明
python有局部变量和全局变量之分,但是没有明显的变量声明,通过首次赋值产生,超出作用范围自动消亡。
一次赋值多个
v = ('a','b','c')
(x,y,z) = v
v是一个三元素的tuple,并且(x,y,z)是一个三变量的tuple。将一个tuple赋值给另一个tuple。

连接值赋值
range(7)
(Monday,Tuesday, Wednesday,Thursday,Friday,Saturday,Sunday) = range(7)

格式化字符串
python支持格式化字符串的输出。
k = "uid"
v = "sa"
"%s=%s"%(k,v)
第一个%s被k代替,第二个被v代替。
突出作用
usercount = 6
>>>print "users count is %d"%(usercount)
users count is 6
>>>print "users count is " + usercount
traceback(innermost last)
试图将一个字符串与一个非字符串连接会发生异常。

数值格式化
>>>print "is %f"%50.22
50.22
>>>print "is %.2f"%50.222
50.22
>>>pirnt "is %+.3f"%50.22
+50.220

映射list
>>>li = [1,2,3]
>>>[elem*2 for elem in li]
[2,4,6]
>>>li
[1,2,3]

keys,values,item函数
>>>param = {"server":'mpilgrim', "database":"master"}
>>>param.keys()
['server', 'database']
>>>param.values()
[mpilgrim, master]
>>>param.item()
["server":'mpilgrim', "database":"master"]

>>> [k for k, v in params.items()]
['server', 'database']
>>> [v for k, v in params.items()]
[mpilgrim, master]
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']

连接list与分割字符串
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
caution:不能join非字符串。

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'

分割字符串为list
>>>li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>>s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
split 接受一个可选的第二参数,它是要分割次数。





阅读(598) | 评论(0) | 转发(0) |
0

上一篇:自省的威力

下一篇:first python

给主人留下些什么吧!~~