所有元素包含在小括號內,元素之間用逗號隔開,不同元素也可以是不同的數據類型
xxxxxxxxxx
tua = (1, 2, 3, 4, 5)
print(type(tua))
tub = (1, ) # 只有一個元素的時候,末尾必須加上逗號,否則就會返回唯一值的數據類型
print(type(tub))
tuc = () # 定義空元組
print(type(tuc))
輸出結果:
xxxxxxxxxx
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
元組只有一個元素時,必須加逗號,列表沒有必要(否則會影響數據類型)
元組只支持查詢操作,不支持增刪改操作
xxxxxxxxxx
tud = (1,2,3,4,1)
print(tud[2]) # 元組也有下標,從左至右,從0開始
# tua[2] = 'a' # 會報錯,因為不支持修改
輸出結果:
xxxxxxxxxx
3
count()、index()、len()等跟列表的用法相同
xxxxxxxxxx
tud = (1,2,3,4,1)
print(tud.index(2))
print(tud.count(1))
print(len(tud))
print(tud[1:])
輸出結果:
xxxxxxxxxx
1
2
5
(2, 3, 4, 1)
函數的參數和返回值
格式化輸出後面的()本質上就是一個元組
xxxxxxxxxx
name = 'Victoria'
age = 18
print('%s的年齡是:%d' % (name, age))
info = (name, age)
print('%s的年齡是:%d' % info)
# 數據不可以被修改的時候,能夠保據數據安全
輸出結果:
xxxxxxxxxx
Victoria的年齡是:18
Victoria的年齡是:18
鍵值對形式保存,鍵(key)和值(value)之間用冒號隔開,每個鍵值對之間用逗號隔開
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
print(type(dic1))
輸出結果:
xxxxxxxxxx
<class 'dict'>
字典中的鍵具備唯一性,但是值可以重複
xdic2 = {'name': 'Ben', 'name': 'Dennis'} # 不會報錯,鍵名重複的話前面的值會被後面的值覆蓋
print(dic2)
dic3 = {'name': 'Ben', 'name2': 'Ben'}
print(dic3)
輸出結果:
xxxxxxxxxx
{'name': 'Dennis'}
{'name': 'Ben', 'name2': 'Ben'}
基本格式:變量名[鍵名]
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
# print(dic1[1]) # 不可以根據下標,字典中沒有下標,查找元素需要根據鍵名,鍵名相當於下標
print(dic1['name'])
# print(dic1['sex']) # 報錯,鍵名不存在
輸出結果:
xxxxxxxxxx
Victoria
基本格式:變量名.get(鍵名)
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
print(dic1.get('name'))
print(dic1.get('tel')) # 鍵名不存在,會返回None
print(dic1.get('name2', '不存在')) # 如果鍵名不存在,返回自己設定的默認值
輸出結果:
xxxxxxxxxx
Victoria
None
不存在
基本格式:變量名[鍵名] = 值
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
dic1['age'] = 20 # 列表通過下標修改,字典通過鍵名修改
print(dic1)
輸出結果:
xxxxxxxxxx
{'name': 'Victoria', 'age': 20}
基本格式:變量名[鍵名] = 值
💡 鍵名存在就是修改,不存在就是新增
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
dic1['sex'] = 'M' # 鍵名存在就是修改,不存在就是新增
print(dic1)
dic1['sex'] = 'F'
print(dic1)
dic1['height'] = '163'
print(dic1)
輸出結果:
xxxxxxxxxx
{'name': 'Victoria', 'age': 18, 'sex': 'M'}
{'name': 'Victoria', 'age': 18, 'sex': 'F'}
{'name': 'Victoria', 'age': 18, 'sex': 'F', 'height': '163'}
del:刪除整個字典/指定的元素
刪除整個字典:del 字典名
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
del dic1
print(dic1) # 報錯,dic1已經不存在
clear:清空整個字典(含鍵名),但保留了這個字典
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
dic1.clear()
print(dic1)
輸出結果:
xxxxxxxxxx
{}
刪除指定鍵值對,鍵名不存在就會報錯
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
del dic1['age']
print(dic1)
# del dic1['age'] # 已經沒有鍵名,因此會報錯
輸出結果:
xxxxxxxxxx
{'name': 'Victoria'}
pop:刪除指定鍵值對,鍵不存在就會報錯
xxxxxxxxxx
dic1 = {'name': 'Victoria', 'age': 18}
dic1.pop('age')
print(dic1)
# dic1.pop('age') # 報錯,不存在鍵名
# dic1.pop() # 報錯,沒有指定鍵名
# dic1.popitem() # 3.7之前版本是隨機刪除一個鍵值對,之後是默認刪除最後一個鍵值對
輸出結果:
xxxxxxxxxx
{'name': 'Victoria'}
xxxxxxxxxx
dic4 = {'name': 'Victoria', 'age': 18, 'sex': 'F', 'height': '163', 'tel': '62345'}
print(len(dic4)) # 返回5,因為字典中有5個鍵值對
輸出結果:
xxxxxxxxxx
5
💡 列表(返回元素數量)、字符串(返回字符串長度)等也可以求長度
xxxxxxxxxx
dic4 = {'name': 'Victoria', 'age': 18, 'sex': 'F', 'height': '163', 'tel': '62345'}
print(dic4.keys())
# for循環取出鍵名
for i in dic4.keys(): # 只取出鍵名
print(i)
# for i in dic4():也是取出鍵名
輸出結果:
xxxxxxxxxx
dict_keys(['name', 'age', 'sex', 'height', 'tel'])
name
age
sex
height
tel
💡 列表(返回元素數量)、字符串(返回字符串長度)等也可以求長度
xxxxxxxxxx
dic4 = {'name': 'Victoria', 'age': 18, 'sex': 'F', 'height': '163', 'tel': '62345'}
print(dic4.values())
for i in dic4.values():
print(i)
輸出結果:
xxxxxxxxxx
dict_values(['Victoria', 18, 'F', '163', '62345'])
Victoria
18
F
163
62345
xxxxxxxxxx
dic4 = {'name': 'Victoria', 'age': 18, 'sex': 'F', 'height': '163', 'tel': '62345'}
print(dic4.items())
for i in dic4.items():
print(i, type(i)) # i是元組類型
輸出結果:
xxxxxxxxxx
dict_items([('name', 'Victoria'), ('age', 18), ('sex', 'F'), ('height', '163'), ('tel', '62345')])
('name', 'Victoria') <class 'tuple'>
('age', 18) <class 'tuple'>
('sex', 'F') <class 'tuple'>
('height', '163') <class 'tuple'>
('tel', '62345') <class 'tuple'>
可以使用鍵值對,存儲描述一個物體的相關信息
xxxxxxxxxx
s1 = {1, 2, 3}
print(s1, type(s1))
s2 = {} # 定義空字典
print(s2, type(s2))
s3 = set() # 定義空集合
print(s3, type(s3))
輸出結果:
xxxxxxxxxx
{1, 2, 3} <class 'set'>
{} <class 'dict'>
set() <class 'set'>
xxxxxxxxxx
s1 = {'a','b','c','d','e','f','g','h'}
print(s1) # 每次運行結果都不一樣
s2 = {1,2,3,4,5,6}
print(s2) # 數字集合運行結果一樣
輸出結果:
xxxxxxxxxx
{'b', 'c', 'e', 'd', 'a', 'g', 'h', 'f'}
{1, 2, 3, 4, 5, 6}
xxxxxxxxxx
print(hash('a'))
print(hash('b'))
print(hash('c'))
# 每次運行結果都不同,hash值不同,那麼在hash表中的位置也不同,這就實現了集合的無序性
print(hash(1))
print(hash(2))
print(hash(3))
# python中int類型的hash值就是它本身,在hash表中的位置不會發生變化,所以順序也不會發生改變
print(hash('1'))
print(hash('2'))
print(hash('3'))
# 因為用引號括起來,int就變成字符串類型,hash值會發生改變
❗ 無序性:不能修改集合中的值
可以通過唯一性自動去重
xxxxxxxxxx
s1 = {1,2,5,3,2,6,4,3}
print(s1) # 返回{1, 2, 3, 4, 5, 6}
輸出結果:
xxxxxxxxxx
{1, 2, 3, 4, 5, 6}
add:添加的是一個整體
xxxxxxxxxx
s2 = {1,2,3,4}
print('原集合:',s2)
s2.add(5)
print('現集合:',s2)
# 集合的唯一性,決定了如果需要添加的元素在原集合中已經存在,就不進行任何操作
s2 = {1,2,3,4}
print(s2)
s2.add(1) # 不進行操作
print(s2)
s2.add((5,6)) # 整體加入
print(s2)
輸出結果:
xxxxxxxxxx
原集合: {1, 2, 3, 4}
現集合: {1, 2, 3, 4, 5}
{1, 2, 3, 4}
{1, 2, 3, 4}
{1, 2, 3, 4, (5, 6)}
update:把傳入的元素拆分,一個個放進集合中
xxxxxxxxxx
s3 = {1,2,3,4,5}
print('原集合:',s3)
s3.update([5,6,7]) # update內必須是能被for循環取值的可迭代對象,如字符串、列表等等。整型就不行
s3.update((8,9,10))
print('現集合:',s3)
輸出結果:
xxxxxxxxxx
原集合: {1, 2, 3, 4, 5}
現集合: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
remove:選擇刪除的元素,如果集合中有就刪除,沒有就報錯
xxxxxxxxxx
s4 = {1,2,3,4,5}
s4.remove(5)
# s4.remove(6) #報錯
print('刪除後:',s4)
輸出結果:
xxxxxxxxxx
刪除後: {1, 2, 3, 4}
pop
xxxxxxxxxx
s4 = {1,2,3,4,5}
print('原集合:',s4)
s4.pop() # 集合內為int類型就是刪除第一個元素,不是int類型的話就是hash表排序後的第一個元素
print('刪除後:',s4)
輸出結果:
xxxxxxxxxx
原集合: {1, 2, 3, 4, 5}
刪除後: {2, 3, 4, 5}
discard:選擇要刪除的元素,有就刪除,沒有就不會進行任何操作
xxxxxxxxxx
s4 = {1,2,3,4,5}
print('原集合:',s4)
s4.discard(2)
print('刪除後:',s4)
s4.discard(7)
print('再刪除後:',s4)
輸出結果:
xxxxxxxxxx
原集合: {1, 2, 3, 4, 5}
刪除後: {1, 3, 4, 5}
再刪除後: {1, 3, 4, 5}
含義:共有的部分
xxxxxxxxxx
a = {1,2,3,4,5}
b = {3,4,5,6}
print(a & b)
c = {6,7,8}
print(a & c) # 返回set(),即空集合
s1 = {'a','b','c','d'}
s2 = {'c','d','e'}
print(s1 & s2)
輸出結果:
xxxxxxxxxx
{3, 4, 5}
set()
{'c', 'd'}
含義:所有的都放一起,重複的不算(集合的唯一性)
xxxxxxxxxx
a = {1,2,3}
b = {3,4,5}
print(a | b)
l = a | b
print(type(l))
輸出結果:
xxxxxxxxxx
{1, 2, 3, 4, 5}
<class 'set'>
目的地 | 超連結 |
---|---|
首頁 | 返回主頁 |
Python學習 | Python學習 |
上一篇 | 06 - 字符串&列表 |
下一篇 | 08 - 類型轉換&深淺拷貝 |