如下,通过小括号创建元组。作为数据容器,元组的元素类型可以不统一,并通过下标创建元素和进行切片。
tuple1=("hello","world","python","spark","hadoop")
print("获取指定位置的元素:",tuple1[0])
tuple2=(-10,-20,5.888,888,20000)
print("元组正向切片:",tuple2[1:])
tuple3=("hello",[1,2],-20,888,5.888)
print("元组反向切片:",tuple3[:-1])
tuple4=([1,2],[3,4],[5,6,7,8],[9,10,11,12,13,14])
print("获取列表中的元素:",tuple4[2][:-1])
执行结果如下,对元组的遍历、访问指定位置的元素等 *** 作与列表是相似的。
获取指定位置的元素: hello
元组正向切片: (-20, 5.888, 888, 20000)
元组反向切片: ('hello', [1, 2], -20, 888)
获取列表中的元素: [5, 6, 7]
使用小括号将两个元组相加,能创建新的元组。注意,这里的相加只是加法的重载,与字符串相加类似,即将两个对象的内容连接在一起并创建一个新对象,如下
tuple1=("hello","world","python")
tuple2=([1,2],[3,4],[5,6,7,8])
tuple3=tuple1+tuple2
print("通过加法拼接的元组:")
print(tuple3)
执行结果如下
通过加法拼接的元组:
('hello', 'world', 'python', [1, 2], [3, 4], [5, 6, 7, 8])
二、修改元组
元组是不可变类型,直接修改元组的元素会导致程序报错。但是,如果保持元组的大小不变,并且要修改的元素是可变类型,那么就能正常修改了,如下
tuple1=("hello","world","python","spark","hadoop")
try:
tuple1[0]="hello world"
except Exception as e:
print("修改元组数据触发异常:",e)
tuple4=([1,2],[3,4],[5,6,7,8])
tuple4[1][0]=("hello","world")
print("修改元组中的列表:",tuple4)
执行结果如下
修改元组数据触发异常: 'tuple' object does not support item assignment
修改元组中的列表: ([1, 2], [('hello', 'world'), 4], [5, 6, 7, 8])
三、单元素元组
如下,对于创建单个元素的列表,直接在中括号中放置元素即可,但是对于元组,则需要在元素末尾放置一个逗号,如第8行和第14行。第6行和第14行输出的对象类型将分别是字符串和列表,而第9行和第15行输出的元素类型才是元组。
tmp_str="123"
tmp_list=[tmp_str]
print("单元素列表:",type(tmp_list))
tmp_tuple=(tmp_str)
print("单元素元组:",type(tmp_tuple))
tmp_tuple=(tmp_str,)
print("单元素元组:",type(tmp_tuple))
tmp_tuple=(tmp_list)
print("单元素元组:",type(tmp_tuple))
tmp_tuple=(tmp_list,)
print("单元素元组:",type(tmp_tuple))
执行结果如下
单元素列表: <class 'list'>
单元素元组: <class 'str'>
单元素元组: <class 'tuple'>
单元素元组: <class 'list'>
单元素元组: <class 'tuple'>
注意,在元素末尾放置一个逗号构成元组,只是对单个元素才有此要求。对于有多个元素的元组,末尾的逗号是可选的。
四、命名元组namedtuple是collections模块内的一个对象,称为命名元组。具体用法如下,通过namedtuple可以创建一个新的对象,其第一个参数就是该对象的名称,第二个参数是一个列表,制定了该对象的字段。使用该对象创建实例,需要传入字段所对应的参数。访问实例的字段内容,可以通过索引和字段名称。
from collections import namedtuple
fruit=namedtuple("fruit",["category","price"])
fruit_obj=fruit("apple",price=10.2)
print("元组名称:",fruit.__name__)
print("fruit_obj对象结构:",fruit_obj)
print("category值为:fruit_obj[0]={},fruit_obj.category={}".format(fruit_obj[0],fruit_obj.category))
print("price值为:fruit_obj[0]={},fruit_obj.price={}".format(fruit_obj[1],fruit_obj.price))
执行结果如下,输出命名元组对象的信息
元组名称: fruit
fruit_obj对象结构: fruit(category='apple', price=10.2)
category值为:fruit_obj[0]=apple,fruit_obj.category=apple
price值为:fruit_obj[0]=10.2,fruit_obj.price=10.2
本篇文章就到这里结束了,希望能给小伙伴们一些帮助,喜欢的小伙伴们可以点赞关注支持一下!!!
(元组的内容学习的较少所以写的也就比较少了,绝对不是我水文!!!)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)