零基础入门python3.7 ——基础知识总结(五)元组(tuple)

一 元组

元组也是python的一种数据结构。和列表类似也是由一系列特定序列的元素组成

二  元组与列表的区别

  1. 列表是可变的。 包括添加元素删除元素等。元组一旦被创建就是不可变的  
  2. 列表可以出现相同的元素。 元组不会存在相同的元素。  即使有相同的元素只会保留一个其他会被忽略。

三  元组的创建

  • 使用()创建元组
tuple1 = (1, 2, 34, 'java', 'python',  'java')
print(tuple1)

tuple2 = ("python", True, )
print(tuple2)

(1, 2, 34, 'java', 'python', 'java')
('python', True)

小括号不是必要的。 前提是元素之间必须要有逗号分隔

tuple1 = 1, 2, 34, 'java', 'python',  'java'
print(tuple1)

tuple2 = "python", True
print(tuple2)

(1, 2, 34, 'java', 'python', 'java')
('python', True)

在创建只包含一个元素的元组时。其元素后面必须加上逗号否则python会将其解析为字符串或者其他数据类型

tuple1 = (1,)
print(tuple1)
print('---------')

tuple2 = "python",
print(tuple2)
print('---------')

tuple3 = 'python'
print(tuple3)
print('---------')

tuple4 = (1)
print(tuple4)
print(type(tuple4))


(1,)
---------
('python',)
---------
python
---------
1
<class 'int'>
  • tuple()函数创建

# 将字符串转换成元组
a = tuple("hello")
print(a)
print('-------')

# 将列表转换成元组
b = tuple([1, 1, 2, 2, "java", 'python'])
print(b)
print("-------")

# 将字典转换成元组
c = tuple({a: 100, b: "java", 1: "python"})
print(c)
print("--------")

# 将区间转换成元组
d = tuple(range(0, 10))
print(d)
print("--------")

# 创建空元组
e = tuple()
print(e)


('h', 'e', 'l', 'l', 'o')
-------
(1, 1, 2, 2, 'java', 'python')
-------
(('h', 'e', 'l', 'l', 'o'), (1, 1, 2, 2, 'java', 'python'), 1)
--------
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
--------
()

三。元组的访问

和列表一样访问元组也可以通过索引和切片两种方式访问

# 将区间转换成元组
d = tuple(range(0, 10))
print(d)
print("--------")
print(d[3])
print(d[0])
print(d[::])
print(d[3:])
print(d[3:8:2])
print(d[:8:2])
print(d[:-8:2])
print(d[-3:])


(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
--------
3
0
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(3, 4, 5, 6, 7, 8, 9)
(3, 5, 7)
(0, 2, 4, 6)
(0,)
(7, 8, 9)

四。元组的修改

tuple1 = (1, 2, 34, 'java', 'python',  'java', [1, 2])
print(tuple1)
print("---------")

tuple1[6][0] = 'java'
print(tuple1)

(1, 2, 34, 'java', 'python', 'java', [1, 2])
---------
(1, 2, 34, 'java', 'python', 'java', ['java', 2])

这个有人会问不是说元组是无法修改的嘛。实际上表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

五。元组的删除

tuple1 = (1, 2, 34, 'java', 'python',  'java', [1, 2])
print(tuple1)
print("---------")

del tuple1
print(tuple1)

(1, 2, 34, 'java', 'python', 'java', [1, 2])
---------
Traceback (most recent call last):
  File "/Users/apple/Desktop/python3/python20.py", line 6, in <module>
    print(tuple1)
NameError: name 'tuple1' is not defined
发布了26 篇原创文章 · 获赞 79 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_25502269/article/details/105497356