Python自学笔记---4.元组

尽管元组支持大部分操作与列表相同(如索引,切片和连接),但是创建完元组后不能修改它的内容(即就是无法替换,删除或者添加新的元素)。可以把元组看成一个由多个部分组成的单一对象,而不是可在其中插入或删除项的不同对象的集合。

创建元组

  • 在圆括号中放入一组数据即可创建元组
address = ('www.python.org', 80)
first_name = 'Allen'
last_name = 'Iverson'
phone = 123456
person = (first_name, last_name, phone)
#没有圆括号python也能识别出元组
stock = 'GOOD', 100, 490.10
print(address)
print(person)
print(stock)
  • 上述例子创建的时有多个元素的元组,那么能不能创建0个元素的元组或者一个元素的元组呢?
a = ()      #0个元素的元组
item = 'Hot'
b = (item,) #1元组(注意随后的逗号)
c = item,   #1元组(注意随后的逗号)
d = (55)    #不加逗号表示整型,加上逗号就表示元组
print(a)
print(b)
print(c)
print(d)

访问元组

address = ('www.python.org', 80)
first_name = 'Allen'
last_name = 'Iverson'
phone = 123456
person = (first_name, last_name, phone)
print("address[0]:", address[0])
print("person[1]:", person[1])

del address #使用del删除整个元组
print("删除后的元组为:")
print(address)    #这句会报错“NameError: name 'address' is not defined”,因为address已经被删除了

与元组相关的运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组

happy = (1, 2, 3)
a = len(happy)             #计算元素个数
print(a)

happy1 = happy + (4, 5, 6) #使用“+”对元组进行连接
print(happy1)

happy2 = ("yuanzu",)*4   #复制
print(happy2)

for x in happy1:          #迭代
    print (x,)

运行结果如下:

3
(1, 2, 3, 4, 5, 6)
('yuanzu', 'yuanzu', 'yuanzu', 'yuanzu')
1
2
3
4
5
6

元组的解包

和列表一样,元组能使用数字索引来提取元组中的值,然而,更常见的作法是将元组解包为一组变量

stock = ('GOOD', 100, 490.10)
name, shares, price = stock #元组的解包
print("name is", name)
print("shares is", shares)
print("price is", price)

输出结果为:

name is GOOD
shares is 100
price is 490.1

元组的截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

L = ('apple', 'xiaomi', 'oppo', 'nokia')
a = L[2]  #读取第三个元素
b = L[-2] #反向读取;读取倒数第二个元素
c = L[1:] #截取元素,从第二个开始后的所有元素。
print(a)
print(b)
print(c)

输出结果为:

oppo
oppo
('xiaomi', 'oppo', 'nokia')

元组内置函数

Python元组包含了以下内置函数
1.计算元组元素个数—len

stock = ('GOOD', 100, 490.10)
print(len(stock))

2.返回元组中元素最大值—max

L = ('5', '4', '8')
print(max(L))

3.返回元组中元素最小值—min

L = ('5', '4', '8')
print(min(L))
L = ('system', '4', '8')
print(min(L))

4.将列表转换为元组—tuple

list1 = ['apple', 'xiaomi', 'oppo', 'nokia']
print("转换之前",list1)
seq = tuple(list1)
print("转换之后",seq)

元组与列表使用的利弊

因为组元与列表有很多相似之处,但是不要忽略元组,而使用列表,因为后者看似方便灵活,但是计算机为此也付出了巨大的代价。如果程序创建了大量的小列表(包含的项少于十),则会造成内存的浪费。因为系统会为列表分配稍微多一些的内存,以便于优化添加新项操作的性能。而由于元组是不可变的,所以他们的展现更为紧凑,不会占用额外的内存空间

总结

  • 本节我们学习了元组的基本操作,包含创建,根据索引号访问元组的项,与元组相关的运算,元组的解包,元组的截取,以及元组的四个内置函数;
  • 最后我们简单的分析了一下元组与列表之间使用上的利弊
  • 欢迎路过的大神指导,相互学习,”教学相长“

你可能感兴趣的:(Python自学笔记)