1. 程式人生 > >python- 元組tuple

python- 元組tuple

1.元組的建立 
2.元組的特性

    -1索引
    -2切片
    -3連線
    -4重複
    -5for迴圈
    -6成員操作符

3.元組的常用方法 

    -1索引
    -2出現的次數

4.元組的應用場景

    -1.變數交換數值 
    -2.列印變數值 
    -3.元組的賦值 
    -4.比賽計分器、排序 

1.元組的建立
列表:打了激素的陣列
元組:帶了緊箍咒的列表,不可變資料型別,沒有增刪改查,可以儲存任意資料型別。

#定義元組

t = (1,1.2,True,'westos')	#元組為(圓括號)
print(t,type(t))
(1, 1.2, True, 'westos') <class 'tuple'>

#如果元組裡麵包含可變資料型別,可以間接修改元組內容

t1 = ([1, 2, 3], 4)	
t1[0].append(4)	#索引值為0處增加元素
print(t1)

([1, 2, 3, 4], 4)

#元組與列表型別轉換

t2 = ()
print(t2)

()

t3 = tuple([])
print(t3)	#列表轉換為元組

()

l4 = list(())	#元組轉換為列表
print(l4)

[]

#元組如果只有一個元素,後面一定要加逗號,否則資料型別不確定

t4 = (1,)
print(t4,type(t4))
    
(1,) <class 'tuple'>

2.元組的特性
-1索引
-2切片
-3連線
-4重複
-5for迴圈
-6成員操作符

-1索引

tuple = (1,1.0,True,'westos')
# 索引
print(tuple[0])
print(tuple[-1])

-2切片

tuple = (1,1.0,True,'westos')
# 切片
print(tuple[1:])
print(tuple[:-1])
print(tuple[::-1])

-3連線

# 連線
# 不同的資料型別可以連線麼(除了數值型別之外,不同的資料型別之間不可以連線)
tuple = (1,1.0,True,'westos')
print(tuple + (1,2,3))

(1, 1.0, True, 'westos', 1, 2, 3)

tuple = (1,1.0,True,'westos')
print(tuple + [4,5,6])	#不同資料型別不可以連線
     File "F:/python/python1125/day04/02_元組的特性.py", line 19, in <module>
    print(tuple + [4,5,6])
TypeError: can only concatenate tuple (not "list") to tuple

tuple = (1,1.0,True,'westos')	#不同資料型別不可以連線
print(tuple + 'westos')
    
 File "F:/python/python1125/day04/02_元組的特性.py", line 19, in <module>
    print(tuple + [4,5,6])
TypeError: can only concatenate tuple (not "list") to tuple

-4重複

#重複

tuple = (1,1.0,True,'westos')
print(tuple * 5)

(1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos')

-5for迴圈

# for迴圈
tuple = (1,1.0,True,'westos')
for i in tuple:
    print(i)
 
1
1.0
True
westos

-6成員操作符

#成員操作符
tuple = (1,1.0,True,'westos')
print(1 in tuple)

True

tuple = (1,1.0,True,'westos')
print(1 not in tuple)

False

3.元組的常用方法
-1索引
-2出現的次數

t = (1,2,'a','c','a')
# 檢視元素的索引值
print(t.index('c'))
# 檢視元素在元組中出現的次數
print(t.count('a'))

4.元組的應用場景
-1.變數交換數值
-2.列印變數值
-3.元組的賦值
-2.比賽計分器、排序

-1變數交換數值

a = 1
b = 2
b,a = a,b
"""
1.先把(a,b)封裝成了一個元組 (1,2)
2. b,a = a,b ===> b,a = (1,2)
3. b = (1,2)[0] a =(1,2)[1]
"""
print(a,b)

2 1

-2.列印變數值

#變數交換數值有多少個元素,就用多少個變數接收

name = 'westos'
age = 11
t = (name, age)				#建立元組
print('name:%s,age:%s' % (name, age))	
print('name:%s,age:%s' %(t))		#兩種方法都可以列印變數值

-3.變數的賦值:變數交換數值有多少個元素,就用多少個變數接收

t = ('Westos',10,100)	#變數有三個元素
name,age,score = t	#則用三個變數接收
print(name,age,score)

-4.元組的排序:

兩種方法:
1.型別轉換為列表用.sort()排序

scores = (100,89,45,78,65)
#先對元組進行轉換
scoreli = list(scores)
scoreli.sort()
print(scoreli)

[45, 65, 78, 89, 100]

2.sorted()直接排序

scores = (100,89,45,78,65)
scores_sort = sorted(scores)
print(scores_sort)

[45, 65, 78, 89, 100]

比賽計時器:

scores = (100, 89, 98, 60, 90, 67)
# 或scores.sort()
scores = sorted(scores)
# python2中*middle不能使用的
min_score, *middle, max_score = scores
print(min_score, '~~~~', *middle, '~~~~~~', max_score)
print('最終成績為:%s' % (sum(middle) / 4))

60 ~~~~ 67 89 90 98 ~~~~~~ 100
最終成績為:86.0