python中的元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的元组相关的知识,希望对你有一定的参考价值。

创建简单的数据结构 可以使用元组 存储数据  使用圆括号 创建元组

address = (‘北京‘,‘上海‘,‘天津‘,‘广州‘,‘重庆‘)

即使没有圆括号 python通常也能识别元组

number = 1,2,34,4,5,6,7,8

如果你要创建1个数值的元组 需要在后面添加一个,(逗号)

num  = 1,  # type = tuple
num  = 1  # type = int
num  = (1) # type = int
num  = (1,) # type  = tuple

和列表一样 也可以使用数字索引提取元素中的值 然而最常用的方法是将元组解包为一组变量

number = (‘阮小七‘,23,‘河北张家口‘)
name,age,addr = number #元组解包为一组数据
rint(name);
print(age);
print(addr);

元组操作与列表大部分相同(索引 切片,连接)但是创建元组后不能修改内容(无法替换 删除现有元组中的元素 或者 插入新元素) 说明: 最好把元组看做由多部分组成的对象 而不是可在其中插入或者删除项的不同的集合

元组修改必须使用切片和连接运算符

name = (‘双枪将董平‘,‘没羽箭张青‘,‘青面兽杨志‘)  #不能用insert或者append方法 添加新元素
name=name[1:]+(‘急先锋索超‘,) +name[:1];

 输出结果:

(‘没羽箭张青‘, ‘青面兽杨志‘, ‘急先锋索超‘, ‘双枪将董平‘)

在元组中 使用 * 重复运算符 如:

8*(4,)

 

输出结果:

(4,4,4,4,4,4,4,4)

表示数据时 通常同时使用元组和列表:

filename = ‘E:/work.txt‘;
datas = [];
for line in open(filename):
 fileds = line.split(‘,‘);  #将每行划分为一个列表 
 name = fileds[0]; #提取并转换每一个字段
 tokens = int(fileds[1]);
 price  = float(fileds[2]);
 stock = (name,tokens,price);
 datas.append(stock);
print(datas)

注:此处将work.txt中的数据提取并组成一个元组 放入到了 列表中

输出结果:

[("‘tom‘", 120, 132.0), ("‘jon‘", 234, 255.0), ("‘jeck‘", 123, 678.0)]

如果要访问元组中的数据项 :

print(datas[1]); #索引
print(data[2][1]); #切片

 

输出结果

("‘jon‘", 234, 255.0)
123

如果想循环所有记录并将字段进行运算 则:

for name, tokens, price in datas:
 total += tokens * price;
print(total);

输出结果:158904.0

 总结:

1,创建元组可使用()

2,创建1个值的元组 可使用:tuple1 = str, 或者 tuple1 = (str,) 

3,常用的提取值的方式 切片或者索引提取或者将元组解包为一组变量 name ,age,add = date;

5,元组不可以使用常规方法被修改或者添加项  但是可以使用切片运算符和连接用算符进行此操作

6,*在元组中可以作为重复运算符

7,同时使用元组和列表的用法

本文出自 “洪大春的技术专栏” 博客,请务必保留此出处http://hongdachun.blog.51cto.com/9586598/1760241

以上是关于python中的元组的主要内容,如果未能解决你的问题,请参考以下文章

对于非常大的元组/文件/数据库记录/numpy.ndarray,linux“更多”类似于python中的代码?

Python - 验证列表中的元组具有相同的长度

根据值对python中的元组进行排序[重复]

Python - 字典理解中的元组解包

Python中的元组(Tuple)

如何在 Haskell 中连接幻像类型中的元组?