Python基础之数据结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础之数据结构相关的知识,希望对你有一定的参考价值。
在Python 中有四种内建的数据结构—— 列表、元组、字典和集合。
1.列表
list 是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。
列表中的项目应该包括在方括号中,这样Python 就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。
def List(): #列表,有序 ShopList = ["Apple","Carrot","Banana","Mango"] print "I have",len(ShopList),"items to purchase." print "These items are:", for i in ShopList: print i, print "\nI alse have to buy rice." ShopList.append("Rice") #append 方法来给列表对象增加一项 print "My shopping list is now",ShopList print(‘I will sort my list now‘) ShopList.sort() #用sort 方法将列表进行排序 print "Sorted shopping list is",ShopList print "The first item I will buy is",ShopList[0] #像一维数组 OldItem = ShopList[0] del ShopList[0] #del移除这一项 print "I bought the",OldItem print "My shopping list is now",ShopList
2.元组
元组用来将多样的对象集合到一起。元组和列表十分类似,只不过元组和字符串一样是不可变的即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。
元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
def Tupel(): #元组,不可修改 Zoo = ("Python","Mouse","Wolf") # ,连接作用 print "Number of animals in the zoo is:",len(Zoo) NewZoo = ("Monkey","Panda",Zoo) print "Number of cages in the new zoo is:",len(NewZoo) print "All animals in new zoo are:",NewZoo print "Animals brought from old zoo is:",NewZoo[2] print "Last animal brought from old zoo is:",NewZoo[2][2] #像二维数组 print "Number of animals in the new zoo is",len(NewZoo)-1+len(NewZoo[2])
3.字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,就无法找到正确的信息。
注意,只能使用不可变的对象(比如字符串)来作为字典的键,但是可以把不可变或可变的对象作为字典的值。基本说来就是,应该只使用简单的对象作为键。
键值对在字典中以这样的方式标记:d = key1 : value1, key2 : value2 。字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。
字典是dict 类的实例/对象。
def KeyValue(): #字典 Safe = {"baidu" : "baidu.con", "tenxun" : "tenxun.con", "ali" : "alibaba.com", "360" : "qihu360.com"} print "Safe‘s Address is:",Safe["baidu"] del Safe["360"] #删除键/值对 print "There are {0} Safe:".format(len(Safe)) for Name,Address in Safe.items(): print "{0} at {1}".format(Name,Address) Safe["lvmeng"] = "lvmeng.com" #这样就添加进去了 if "lvmeng" in Safe: print "lvmeng‘s address is:",Safe["lvmeng"]
使用字典的items 方法,来使用字典中的每个键/值对,会返回一个元组的列表,其中每个元组都包含一对项目—— 键与对应的值。
4.序列
列表、元组和字符串都是序列。
序列的主要特点是索成员检验(例如,在和不在表达式中)和索引操作符,索引操作符让我们可以直接从序列中抓取一个特定项目。
def Index(): # 序列,索成员检验和索引操作符 ShopList = ["apple","mange","carret","banana"] Name = "Key" print "Item 0 is:",ShopList[0] print "Item -1 is:",ShopList[-1] #反着来 print "Character 0 is:",Name[0] print "Character 1 is:",Name[1] print "Item 1 to 3 is:",ShopList[1:3] print "Item start to end is:",ShopList[:] print "Character 1 to 3 is:",Name[1:3] print "Character start to end is:",Name[:]
索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python 就从序列首开始。如果没有指定第二个数,则Python 会停止在序列尾。返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。shoplist[1:3] 返回从位置1 开始,包括位置2,但是停止在位置3 的一个序列切片,因此返回一个含有两个项目的切片。类似地,shoplist[:] 返回整个序列的拷贝。
5.集合
集合是没有顺序的简单对象的聚集。当在聚集中一个对象的存在比其顺序或者出现的次数重要时使用集合。使用集合,可以检查是否是成员,是否是另一个集合的子集,得到两个集合的交集等等。
def Gather(): #集合 Country = set(["China","Russia","USA"]) "USA" in Country "India" in Country Countries = Country.copy() Countries.add("UK") Countries.issuperset(Country) Country.remove("USA")
6.引用
def Quote(): #引用 print "Simple Assignment" ShopList = ["apple","mango","carret","banana"] MyList = ShopList del ShopList[0] print "Shoplist is:",ShopList print "mylist is:",MyList #同C++一样,只是名字不同而已,都是代表同一块内存 print "Copy by making a full slice" MyList = ShopList del MyList[0] print "shoplist is:",ShopList print "mylist is :",MyList
以上是关于Python基础之数据结构的主要内容,如果未能解决你的问题,请参考以下文章