Python笔记-内置数据类型

Dictionary

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#定义Dictionary
#方法1
d = {"server":"mpilgrim", "database":"master"}
#方法2
fdict = dict((['x', 1], ['y', 2]))
#方法3 
#从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字典中元素具有相同的值 (如果没有给出, 默认为None):
ddict = {}.fromkeys(('x', 'y'), -1)
#------------------------------------------------------
#通过key来引用值
  print d["server"] -> 'mpilgrim'
  print d["database"] -> 'master'
  print d["mpilgrim"] -> Traceback (innermost last):
#------------------------------------------------------
#修改Dictionary
#在一个 dictionary中不能有重复的key。给一个存在的key赋值会覆盖原有的值。
d["database"] = "pubs"
print d["database"] -> 'pubs'
d["uid"] = "sa"
print d["uid"] -> 'sa'
#------------------------------------------------------
#判断是否存在key
'server' in dict2 # 或 
dict2.has_key('server')
#------------------------------------------------------
#删除字典元素和字典
del dict2['name'] # 删除键为“name”的条目
dict2.clear() # 删除dict2 中所有的条目
del dict2 # 删除整个dict2 字典
dict2.pop('name') # 删除并返回键为“name”的条目
#------------------------------------------------------
#获取所有key、value
dict2 = {'name': 'earth', 'port': 80}
dict2.keys() -> ['port', 'name']
dict2.values() -> [80, 'earth']
dict2.items() -> [('port', 80), ('name', 'earth')]
#------------------------------------------------------
#排序
#按照value的值从大到小的顺序来排序
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
#对字典按键(key)排序
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0])  #d[0]表示字典的键
print dict

List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#定义List
>>>li = ["a", "b", "mpilgrim", "z", "example"]
>>>li
["a", "b", "mpilgrim", "z", "example"]
>>>li[0]
'a'
>>>li[4]
'example'
>>>li[-1] #li[-n] = li[len[li]-n]
'example'
>>>li[-3]
'mpilgrim'
#添加元素
>>>li.append("cc")
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'cc']
#合并列表
>>> li.extend([1,2,3,4])
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'cc', 1, 2, 3, 4]
#删除元素
>>> del li[0]
>>> li
['b', 'mpilgrim', 'z', 'example', 'cc', 1, 2, 3, 4]
#分片(slice)
>>>li[1:3]
["b", "mpilgrim"]
>>> li.remove('b')
>>> li
['mpilgrim', 'z', 'example', 'cc', 1, 2, 3, 4]
#多列排序
>>>list = [{"name":"aa", "sort":1}, {"name":"bb", "sort":8}, {"name":"zz", "sort":5}, {"name":"ff", "sort":3}]
>>>from operator import itemgetter, attrgetter
>>>list.sort(key=itemgetter("sort", "name"), reverse=True)
>>>list
[{'sort': 8, 'name': 'bb'}, {'sort': 5, 'name': 'zz'}, {'sort': 3, 'name': 'ff'}, {'sort': 1, 'name': 'aa'}]

Tuple

tuple是不可变的list, 一旦创建了一个tuple,就不能以任何方式改变它。tuple没有方法,使用tuple的好处:

  • tuple比list操作速度快;
  • 对不需要修改的数据进行“写保护”,使代码更安全;
  • tuple可以在dictionary中被用做key,但是list不行。
1
2
3
4
5
6
7
8
9
10
#定义tuple
>>>t = ("a", "b", "mpilgrim", "z", "example")
>>>t
("a", "b", "mpilgrim", "z", "example")
>>>t[0]
'a'
>>>t[-1]
'example'
>>>t[1:3]
('b', 'mpilgrim')