列表和元组

来源:互联网 发布:网络摄像头ip查找器app 编辑:程序博客网 时间:2024/04/29 07:20

列表

list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中, 你在每个项目之间用逗号分割。

列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于 你可以增加或删 除项目,我们说列表是 可变的 数据类型,即这种类型是可以被改变的。

Python为list类提供了append方法,这个方法让你在列表尾添加一个项目。我们指明我们想要删除列表中的第一个元素,因此我们使用 del shoplist[0](记住,Python从0开始计数)。使用列表的sort方法来对列表排序。需要理解的是,这个方法影响列表本身,而不是返回一个 修改后的列表——这与字符串工作的方法不同。这就是我们所说的列表是 可变的 而字符串是 不可变的 。

使用了for..in循环在列表中各项目间递归。

元组

元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改 变。

一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对 象。即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )。

zoo = ('wolf', 'elephant', 'penguin')
new_zoo = ('monkey', 'dolphin', zoo)
我们可以通过一对方括号来指明某个项目的位置从而来访问元组中的项目,就像我们对列表的用法一样。这被称作 索引 运算符。我们使用new_zoo[2]来访问new_zoo中的第三个项目。我们使用new_zoo[2][2]来访问new_zoo元组的第三个项目的 第三个项目。

元组最通常的用法是用在打印语句中,下面是一个例子:

age = 22
name = 'Swaroop'
print('%s is %d years old' % (name, age))
print('Why is %s playing with that python?' % name )

字典

字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果 有两个人恰巧同名的话,你无法找到正确的信息。

注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作 为键。

键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。

记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。

字典是dict类的实例/对象。使用help(dict)来查看dict类的完整方法列表。

删除:del dict[key]

for name, address in ab.items():
     print ('Contact %s at %s' % (name, address))

序列

列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够 获取序列的一个切片,即一部分序列。

索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而 shoplist[-2]抓取序列的倒数第二个项目。

切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须 的。

切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开 始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置 开始 ,刚好在 结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。这样,shoplist[1:3]返回从位置1开始,包括位置2,但是停止在 位置3的一个序列切片,因此返回一个含有两个项目的切片。类似地,shoplist[:]返回整个序列的拷贝。你可以用负数做切片。负数用在从序列尾开始 计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片。


 

 


0 0
原创粉丝点击