零基礎入門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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章