一、元组
1.1
元组(tuple)是一种一维的、定长的、不可变的python对象序列。最简单的创建方式是一组以逗号隔开的值:
在更复杂的表达式中定义元组时,常常需要用圆括号讲值围起来,比如如下例子创建了一个由元组组成的元组:
通过调用tuple,任何序列或迭代器都可以被转换为元组:
跟大部分其他序列类型一样,元组的元素也可以通过方括号[ ]进行访问,python中的序列也是从0开始索引的。
虽然存储在元组中的对象本身可能是可变的,但一旦创建完毕,存放在各个插槽中的对象就不能再被改变了。
但是,可以添加元素:
元组可以通过加号(+)运算符连接起来以产生更长的元组:
1.2 元组拆包
如果对元组型变量进行赋值,python就会尝试将等号右侧的值进行拆包(unpacking)
即使是嵌套元组也能被拆包:
利用该功能可以轻松第交换变量名。而这个任务在其他语言中可能是这样:
tmp=a
a=b
b=tmp
b,a=a,b
变量拆包功能常用于对由元组或列表组成的序列进行迭代:
seq=[(1,2,3),(4,5,6),(7,8,9)]
for a,b,c in seq:
pass
另一个常见的方法是处理从函数中返回的多个值。
1.3元组方法;
由于元组的大小和内存不能被修改,所以其实例方法很少,最有用的死count(对列表也是如此),它用于计算指定值的出现次数:
二、列表(list)
2.1
与元组相比,列表是变长的,而且内容可以修改,可以通过方括号[ ],或list函数进行定义.
列表和元组在语义上死差不多的,都是一维的=序列,因此他们在许多函数中是可以互换的。
2.2添加和移除元素
通过append方法,可以将元素添加到列表的末尾:
利用insert可以将元素插入到列表的指定位置:
insert的逆运算是pop,它用于移除并返回指定索引处的元素:
remove用于按值删除元素,它找到第一个符合要求的值然后将其从列表中删除:
通过in关键字,可以判断列表中是否含有某个值
判断列表是否含有某个值的操作比字典和集合慢得多。
2.3合并列表
i=0
for i in collection:
#用value做一些事情
i +=1
由于很常见,所以python就内置了一个enumerate函数,它可以逐个返回序列的(i,value)元组:
for i,value in enumerate(collection):
#用value做一些事情
在对数据进行索引时,enumerate还有一种不错的使用模式,即求取一个将序列值(假定是唯一的)映射到其所在位置的字典。
常常将sorted和set结合起来使用以得到一个由序列中的唯一元素组成的有序列表.
对于”已压缩“的(zipped)序列,zip还有一个用法,即对该序列进行”解压“(unizip)。其实就是将一组行转换为一组列。
zip(seq[0],seq[1],seq[2],...seq[len(seq)-1])
用于按逆序迭代序列中的元素:
都是python对象。创建字典的方式之一是:使用大括号{ }并用冒号分隔键和值。
访问(以及插入、设置)元素的语法跟列表和元组是一样的:
利用update方法,一个字典可以被合并到另一个字典中去:
由于字典本质上就是一个二元元祖集,所以我们可以用dict类型函数直接处理二元元组列表:
value=some_dict[key]
else:
value=default_value
value=some_dict.get(key,default_value)
value=some_dict.get(key,default_value)
例如:根据首字母对一组单词进行分类并最终产生一个由列表组成的字典。