Python中类似于PHP的数组的结构有list,tuple,dict和set, 其中list, tuple和set的类似于PHP的索引数组, 而dict就类似于PHP的关联数组,
dict:
dict的结构表示了一种映射关系, 与PHP的关联数组类似, 比如要定义个用户信息如下:
1
2
3
|
name: Yi_Zhi_Yu sex: Man country: China |
这个使用list,tuple和set都是不能直接表示出来的, 因为没有能够使用字符串做键值的结构,而dict就可以,如下
1
2
3
4
|
m = { "name" : "Yi_Zhi_Yu" , "sex" : "Man" , "country" : "China" } / / 注意这里是`{}`, 不是`[]` print m[ "name" ] / / Yi_Zhi_Yu print m[ "sex" ] / / Man print m[ "country" ] / / China |
dict 的数值对象有个get方法, 让我们可以在获取指定key的时候可以指定默认值
- dict 在查找(hash key)和插入(没有顺序要求)速度方面比较有优势,但内存消耗较大
- 而list则正好相反
Set:
Set 与 List 和 Tuple 类似, 但Set中的值是不会重复的
比如要定义学的课程,使用set定义:
定义如下:
1
2
|
classes = set([u"语文", u"数学", u"英文"]) //set 关键词, 括号中是个list print classes //set([u'\u8bed\u6587', u'\u6570\u5b66', u'\u82f1\u6587']) |
添加的方法是add
classes.add(u"数学")
1
2
3
4
5
|
/ / 不会有重复 print classes / / set ([u '\u8bed\u6587' , u '\u6570\u5b66' , u '\u82f1\u6587' ]) classes.add(u "历史" ) print classes / / set ([u '\u8bed\u6587' , u '\u6570\u5b66' , u '\u5386\u53f2' , u '\u82f1\u6587' ]) |
删除的方法是remove:
1
2
|
classes.remove(u "历史" ) print classes / / set ([u '\u8bed\u6587' , u '\u6570\u5b66' , u '\u82f1\u6587' ]) |