原作者:xina
string vs list
string 也和 list 同为 sequence data type,也可作 slice operator,但 string 为 immutable object,不可修改其内容。
1 a = 'hello world!!'
2 print a[-7:], a[:5]
结果显示 : world!! hello
1 a = 'hello'
2 print a[1]
结果显示 : e
string 也和 list 一样,可以 subscript (index) 其中的 item。python 并不像 c/c++ 般, python 并没有独立的 character type,string 的 subscripted item 为一长度为 1 的 string。
nested list
list 里的 item 可以为另一个 list object,成一个巢状的结构。
1 a = [ 1, 2, 3, ][ 'abc', 'cde', 3, 2], 5]
2 print a[3][1]
结果显示 : cde
1 a = [1, 2, 3]
2 print len(a)
结果显示 : 3
len() 函数传回 sequence type object 的 size。
tuple & multiple assignment
1 a = 'foo'
2 a, b, c = 9, 8, a
3 print a, b, c
结果显示 9 8 foo
行 2 称为 multiple assignment,可以同时指定多个变数的内容。
1 a = 1, 2, 3, 4, 5
2 b = 1, 2, a[:3]
3 print a, b
结果显示 : (1, 2, 3, 4, 5) (1, 2, (1, 2, 3))
行 1 bind name a 为 (1, 2, 3, 4, 5),python 定义为 tuple,同 string 为 immutable sequence data type, 不能改变 tuple object 的内容。a = 1, 2, 3, 4, 5 和 a = (1, 2, 3, 4, 5) 是相同的,称之为 tuple packing, 把 1, 2, 3, 4, 5 这几个 object 包成一个 tuple object。
1 a, b, c = 1, 2, 3
2 (e, f, g) = 5, 6, 7
3 print a, b, c, d, e
结果显示 : 1 2 3 5 6 7
上面的动作称之为 tuple unpacking,将等号右边的 sequence type object 解开成数个 object 和等号左边的 name 进行 bind。左边 tuple 的长度必需和右边的 item 数目相同。
1 a = 'hello'
2 a, b, c, d, e = a
3 print d, e, a, b, c
结果显示 : l o h e l
在 multiple assignment 的右边可以为任何 sequence type。
dictionary
1 tel = { 'tony': '111234', 988: 'common' }
2 print tel[988], tel['tony']
结果显示 : common 111234
这为 dictionary (assocative array) 的使用范例。可使用任一 immutable type object 为 key, 用以对映(mapping)指定之 object。
1 a = (1, 2)
2 b = (3, 4)
3 c = (1, 2)
4 d = { a: 'aaa', b: 'bbb' }
5 print d[a], d[b], d[c]
结果显示 : aaa bbb aaa
tuple 也为 immutable object,所以也可作为 key。因为 a 和 c 所 bind 的 object 为相同 value 的 immutable type object,因此得到的结果是相同的。tuple 为 key 时, 其内容不可包含任何 mutable type object。
1 a = { 'foo': 'aaa', 'boo', 999, 'coo', 887}
2 print a.keys()
结果显示 : ['boo', 'foo', 'coo']
keys() 为 dictionary 的 method,传回包含所有 key 的 list object。key 的放置不依其次序。
1 a = { 'aaa': 9999, 'bbb', 8888 }
2 for i in 'aaa', 'bbb', 'ccc':
3 if a.has_key(i):
4 print a[i],
结果显示 : 9999 8888
has_key() 为 dictionary 的 method function,用以判断 dictionary 是否包含某 key。
1 a = { 1: 'aaa', 2: 'bbb', 3: 'ccc'}
2 del a[2]
3 b = ['aaa', 'bbb', 'ccc']
4 del b[1]
3 print a, b
结果显示 : { 1:'aaa', 3:'ccc'} ['aaa', 'ccc']
del 指含可以打断 object 和 key 之间的 binding,并将 key 从 dictionary 去除。可以将 list 中的 ele.net 去除。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器