Python中3种内建数据结构:列表、元组和字典
Python中有3种内建的数据结构:列表、元组和字典。参考简明Python教程
1.列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。
列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。
例:
#!/usr/bin/envpython #coding:utf8 list=['Linux','Nginx','MySQL','PHP'] print'Theseitemsare:', foriteminlist: printitem, print'\naddApache.' list.append('Apache') print'listisnow',list print'\nIwillsortmylistnow' list.sort() print'Sortedlistis%s'%list print'\nThefirstitem',list[0] item0=list[0] print'deletefirstitem' dellist[0] print'listisnow',list
输出
$pythonusing_list.py Theseitemsare:LinuxNginxMySQLPHP addApache. listisnow['Linux','Nginx','MySQL','PHP','Apache'] Iwillsortmylistnow Sortedlistis['Apache','Linux','MySQL','Nginx','PHP'] ThefirstitemApache deletefirstitem listisnow['Linux','MySQL','Nginx','PHP']
2.元组
元组和列表十分类似,只不过元组和字符串一样是不可变的即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
例:
#!/usr/bin/envpython #coding:utf8 zoo=('wolf','elephant','penguin') print'Numberofanimalsinthezoois',len(zoo) new_zoo=('monkey','dolphin',zoo) print'Numberofanimalsinthenewzoois',len(new_zoo) print'Allanimalsinnewzooare',new_zoo print'Animalsbroughtfromoldzooare',new_zoo[2] print'Lastanimalbroughtfromoldzoois',new_zoo[2][2]
输出
$pythonusing_tuple.py Numberofanimalsinthezoois3 Numberofanimalsinthenewzoois3 Allanimalsinnewzooare('monkey','dolphin',('wolf','elephant','penguin')) Animalsbroughtfromoldzooare('wolf','elephant','penguin') Lastanimalbroughtfromoldzooispenguin
3.字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。
键值对在字典中以这样的方式标记:d={key1:value1,key2:value2}。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。
记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。
字典是dict类的实例/对象。
例:
#!/usr/bin/envpython #coding:utf8 contacts={'Admin':'admin@jb51.net', 'Linuxeye':'linuxeye@jb51.net', 'Support':'support@jb51.net' } print"Linuxeye'saddressis%s"%contacts['Linuxeye'] #Addingakey/valuepair contacts['test']='test@jb51.net' #Deletingakey/valuepair delcontacts['Support'] print'\nThereare%dcontactsintheaddress-book\n'%len(contacts) forname,addressincontacts.items(): print'Contact%sat%s'%(name,address) ifcontacts.has_key('test'): print"\ntest'saddressis%s"%contacts['test']
输出
$pythonusing_dict.py Linuxeye'saddressislinuxeye@jb51.net Thereare3contactsintheaddress-book ContactAdminatadmin@jb51.net Contacttestattest@jb51.net ContactLinuxeyeatlinuxeye@jb51.net test'saddressistest@jb51.net