Python札记4_元组tuple

元组tuple是用圆括号()括起来,其中的元素之间用逗号隔开。元组中的元素是任意类型的。元组可以看做融合了列表或者字符串属性的一种序列。

  • 元组是序列,和列表或者字符串比较类似,索引和切片等方法仍然适用
  • 元组中的元素不能更改
  • 如果元组中只有一个元素,最后需要有逗号
  • 元组中的元素是任意类型,和列表类似,不同于字符串
  • 所有在列表中可以修改列表的方法,在元组中全部失效

元组操作

tup = ()        # 创建空元组
print(tup)

tup1 = ('python', )   # 创建单个元组,必须在最后带上逗号
print(tup1)

tup2 = (1, 2, (3, ), ["python", "java", "php"])     # 创建多重元组
print(tup2[0])       # 返回元组中的第一个元素
print(tup2[:1])      # 这里1表示索引编号,从编号0到1,只有第一个元素,返回值的形式仍为元组
print(tup2[1::2])    # 从编号1开始,到结束,步长为2
print(tup2[::-1])    #  反转元组
print(tup2[3][1])    # 元组中第一层标号为3,第二层中标号为1的元素 

print(len(tup2))     # 元素的长度 
print(tup2.index(2))   # 返回元组中元素2的索引标号
del tup2    # 元组中单个元素不能删除,只能删除整个元组

# 结果如下:
()
('python',)
1
(1,)
(2, ['python', 'java', 'php'])
(['python', 'java', 'php'], (3,), 2, 1)
java
4
1

元组和列表转化

元组和列表之间是互通的,通过list()tuple()能够实现列表和元组之间的转化。通过dir(tuple)能够查看元组对象的方法。

>>> dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
  • _iter_:说明元组是可迭代的
  • count(),index():能够应用于序列
# 定义一个元组t
t = (1, 123, ["python", "java"], (123, 'xiaoming'))
list_t = list(t)      # tuple--->list
print(list_t)
tuple_t = tuple(list_t)   # list---->tuple
print(tuple_t)

注意:
元组本身不能被修改,但是可以将元组先转化成列表,通过列表修改之后再转化成元组。tuple--->list--->tuple

# 定义一个元组t
t = (1, 123, ["python", "java"], (123, 'xiaoming'))
list_t = list(t)     # 元组转换成列表
list_t[0] = 2      # 通过列表修改元素
tuple_t = tuple(list_t)   # 再转换成元组 
print(tuple_t)

(2, 123, ['python', 'java'], (123, 'xiaoming'))

元组用途

  • 元组表列表操作速度快;在进行遍历操作的时候,请用元组代替列表
  • 如果对不需要修改的数据进行“写保护”,即该数据是常量,也要使用元组;如果需要改变这些值,转换为列表进行修改
  • 元组在字典中可以当做key来使用,但是列表不可以

你可能感兴趣的:(Python)