Dictionary:定义了键和值之间的一对一关系。类似于Java中的HashTable。 dict = {"a":"a", "b":"b"}。 通过dict["a"]来引用对应Key的值
特性:
不能有重复的Key,给一个存在的Key赋值会覆盖掉原来的值。
Dictionary是无序的。
Dictionary的Key对大小写敏感。
在单个Dictionary中可以有多种数据类型。
操作:
删除元素:del d[key]
清空元素:d.clear()
List:类似于Java中的ArrayList,可以保存任意的数据类型。li = ["a", "b", "c", "d"]。访问方式与Dictionary类似,通过下标进行 访问。 需要注意的是List中可以使用负数下标来进行访问。理解为li[-n] = li[len[li] - n]。
List的分片:li[1:3] 元素为["b", "c"], 包含小标为1的元素而不包含下标为3的元素。
操作:
追加元素:li.append("new")
插入元素:li.insert(2, "new")
连接列表:li.extend(["a", "b"])
搜索元素:li.index("a"),查找一个值的首次出现并返回。
删除元素:li.remove("a"),仅删除第一个元素
弹出元素:li.pop()
List运算符:
li = li+["a"]:跟后续的List进行连接
li+=["a"]:跟后续的List进行连接
li = li * 3:连接三次
Tuple:是不可变的List。定义:t=("a", "b")。用法基本上和List一样,但是不可修改其中的内容。
使用Tuple的好处:
Tuple比List速度快。
Tuple可以当做Dictionary的Key,Dictionary key 必须是不可变的。
变量声明:
if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
反斜杠为续行符。不能引用未赋值的变量。
一次赋多值:>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v (1)
>>> range(7) (1)
[0, 1, 2, 3, 4, 5, 6]
>>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
格式化字符串:
>>> k = "uid"
>>> v = "sa"
>>> "%s=%s" % (k, v)
'uid=sa'
格式化字符串主要是为了强制转换数据类型,打印的时候不报错。因为Python中把字符串和数值一起打印的话他会进行报错的,不像Java可以把数值类型自动转换为字符串类型。请看下面的例子:红色字体为报错信息。
>>> userCount = 6
>>> print "Users connected: " + userCount
Traceback (innermost last):
File "", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects
映射List:
>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params.keys()
['server', 'uid', 'database', 'pwd']
>>> params.values()
['mpilgrim', 'sa', 'master', 'secret']
>>> params.items()
[('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')]
items 函数:这个函数返回一个 dictionary 中所有数据的 tuple 的 list。
连接字符串:
";".join(["%s=%s" % (k, v) for k, v in params.items()]) 注意:不能Join非字符串的List
分割字符串:
s.split(";")
何为Python中的True?
0 为 false; 其它所有数值皆为 true。
空串 ("") 为 false; 其它所有字符串皆为 true。
空 list ([]) 为 false; 其它所有 list 皆为 true。
空 tuple (()) 为 false; 其它所有 tuple 皆为 true。
空 dictionary ({}) 为 false; 其它所有 dictionary 皆为 true。