- Dictionary 介绍
- Dictionary 介绍
Dictionary 是 Python 的内置数据类型之一,它定义了键和值之间一对一的关系
Note: Dictionary 是无序的 dictionary 的 key 是大小写敏感的。
在 dictionary 中可以混用数据类型
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
>>> d["retrycount"] = 3 (1)
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d[42] = "douglas" (2)
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master',
42: 'douglas', 'retrycount': 3}
从 dictionary 中删除元素
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> del d[42]
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d.clear()
>>> d
{}
2.List 介绍
-
List 是一个用方括号包括起来的有序元素的集合。 (注意:Dictionary是无序的)
负的 list 索引
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[-1] 'example' >>> li[-3] 'mpilgrim'
负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 li[-1]。
list 的分片(slice)
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[1:3] ['b', 'mpilgrim'] >>> li[1:-1] ['b', 'mpilgrim', 'z'] >>> li[0:3] ['a', 'b', 'mpilgrim']
-
返回值是一个新的 list,它包含了 list 中按顺序从第一个 slice 索引(这里为li[1])开始,直到但是不包括第二个 slice 索引(这里为li[3]) 的所有元素。
Slice 简写
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li[:3] ['a', 'b', 'mpilgrim'] >>> li[3:] ['z', 'example'] >>> li[:] ['a', 'b', 'mpilgrim', 'z', 'example']
如果将两个分片索引全部省略,这将包括 list 的所有元素。但是与原始的名为 li 的 list 不同,它是一个新 list,恰好拥有与 li 一样的全部元素。li[:]是生成一个 list 完全拷贝的一个简写
向 list 中增加元素
>>> li ['a', 'b', 'mpilgrim', 'z', 'example'] >>> li.append("new") >>> li ['a', 'b', 'mpilgrim', 'z', 'example', 'new'] >>> li.insert(2, "new") >>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new'] >>> li.extend(["two", "elements"]) >>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
请注意,list中的元素不必唯一,现在有两个独立的元素具有 'new' 这个值,li[2] 和li[6]。
extend (扩展)与 append (追加) 的差别
>>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f'])
>>> li
['a', 'b', 'c', 'd', 'e', 'f'] >>> len(li) 6 >>> li[-1] 'f' >>> li = ['a', 'b', 'c'] >>> li.append(['d', 'e', 'f'])
>>> li ['a', 'b', 'c', ['d', 'e', 'f']] >>> len(li) 4 >>> li[-1] ['d', 'e', 'f']
-
extend接受一个参数,这个参数总是一个 list,并且把这个 list 中的每个元素添加到原 list 中。
-
append 接受一个参数,这个参数可以是任何数据类型,并且简单地追加到 list 的尾部。在这里使用一个含有 3 个元素的 list 参数调用append方法。
原来包含 3 个元素的 list 现在包含 4 个元素。为什么是 4 个元素呢?因为刚刚追加的最后一个元素本身是个 list。List 可以包含任何类型的数据,也包括其他的 list。这或许是您所要的结果,或许不是。如果您的意图是extend,请不要使用append。
在 list 中搜索
注意(要测试一个值是否在 list 内,使用in。如果值存在,它返回True,否则返为False 。 )>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.index("example") 5 >>> li.index("new") 2 >>> li.index("c") Traceback (innermost last): File "<interactive input>", line 1, in ? ValueError: list.index(x): x not in list >>> "c" in li False
从 list 中删除元素
>>> li ['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements'] >>> li.remove("z") >>> li ['a', 'b', 'new', 'mpilgrim', 'example', 'new', 'two', 'elements'] >>> li.remove("new") >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two', 'elements'] >>> li.remove("c") Traceback (innermost last): File "<interactive input>", line 1, in ? ValueError: list.remove(x): x not in list >>> li.pop() 'elements' >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two'] >>>li.pop(0) 'a' >>> li ['b', 'mpilgrim', 'example', 'new', 'two'] >>> li = ['a', 'b', 'mpilgrim'] >>> li = li + ['example', 'new'] >>> li ['a', 'b', 'mpilgrim', 'example', 'new'] >>> li += ['two'] >>> li ['a', 'b', 'mpilgrim', 'example', 'new', 'two'] >>> li = [1, 2] * 3 >>> li [1, 2, 1, 2, 1, 2]
pop 是一个有趣的东西。它会做两件事:删除list 的最后一个元素,然后
返回删除元素的值。请注意,这与li[-1]不同,后者返回一个值但不改变
list 本身。也不同于li.remove(value),后者改变 list 但并不返回值
使用 list 的运算符
Lists 也可以用+ 运算符连接起来。list= list +otherlist相当于list.extend(otherlist)。但+运算符把一个新 (连接后) 的 list 作为值返回,而extend只修改存在的 list。也就是说,对于大型list 来说,extend的执行速度要快一些。
* 运算符可以作为一个重复器作用于list。li= [1, 2]* 3 等同于li = [1, 2]+ [1,2]+ [1, 2],即将三个 list 连接成一个。
-