元组也是python的一种数据结构。和列表类似也是由一系列特定序列的元素组成
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
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
print(tuple1)
NameError: name 'tuple1' is not defined