一、元组
元组创建后即固定,不能动态修改,若想修改可用list()函数转为列表修改。创建可以调用tuple()函数或者直接创建。有时元组必须包含在括号里,以避免语义的二义性,例如将元组1,2,3传递给一个函数,则应该写成function((1,2,3))。元组只提供了两种方法,t.count(x)返回对象x在元组中出现的次数,t.index(x)返回元组中从左侧开始第一次出现x的位置,若元组不包含x,则产生ValueError异常。
组元可以使用操作符+、*、[]分片,或in 以及 not in来测试成员关系,增强型运算符也可以使用。
拆分序列可以用于交换值:
a,b = (b,a)
(1)命名的元组
通过collections提供的namedtuple()函数,创建自定义的元组数据类型。
import collections
sale = collections.namedtuple('sale','name price number')
product1 = sale('LK',100,8)
product1
Out[169]: sale(name='LK', price=100, number=8)
函数collections.namedtuple()
第一个参数为创建的元组的名称,第二个参数为字符串,定义元组的内容。
输出调用方式:
print('{0.name} {0.price} {0.number}'.format(product1))
LK 100 8
或
'{name} {price} {number}'.format(**product1._asdict())
Out[177]: 'LK 100 8'
或
"{0.product} {0.price} {0.number}".format(shoes)
Out[5]: 'shoes 100 10'
二、列表
列表可以直接通过[]创建,或者调用list()函数,可以使用索引或者分片符操作。
任意可迭代的数据类型(元组,列表,字符串)都可以通过序列拆分操作符进行拆分,即。用于赋值操作符左边的两个或多个变量时,数据项将赋值给不带的变量,剩余的变量赋值给带*的变量。
one,*other = name
one,other
Out[30]:
('1111',
['kai',
'name1',
'name2',
'name3',
'wang',
'shi',
'xiong'])
带*的变量也可以作为参数传递。
迭代处理列表中的数据项:
for i in range(len(lst)):
print (lst[i])
(1)列表扩展:
方法一:
lst
Out[36]: [1, 2, 3, 4, 5]
lst += [6,7]
lst
Out[38]: [1, 2, 3, 4, 5, 6, 7]