天天看點

Python基礎文法七:元組字典和集合1.元組2.字典基礎3,字典元素的增删改4.字典相關操作和方法5.集合(set)

1.元組

1.什麼是元組

元組是不可變的清單(不支援增删改的操作),元組是有序的(支援下标操作)

元組是容器型資料類型,将()作為容器的标志,多個元素之間用逗号,隔開

元組中的元素的要求和清單一樣

1)空元組:()

2)單個元素的元組:

Tuple2 = (10,)

3)多個元素的元組

tuple4 = (100, 200, 300)

tuple5 = 100, 200, 300

2.擷取元組中的元素

1.擷取單個元素

names = '生活大爆炸', '權利的遊戲', '吸血鬼日記', '破産姐妹', '尼基塔'
print(names[-2])
           

2.切片

names = '生活大爆炸', '權利的遊戲', '吸血鬼日記', '破産姐妹', '尼基塔'
print(names[1::2])
           

3.周遊

for 變量 in 元組

4.其他方式:

a.

touple6 = (10, 20, 30)
x, y, z = touple6
print(x, y, z)
num1, num2 = 100, 200  # num1, num2 = (100,200)
           

b. 變量1,變量2,變量3,… =元組

前面的變量的個數小于元組中元組的個數,并且有且隻有一個變量前有*

帶變量最後的取值為不帶的變量取後剩下的

person = ('餘婷', '女', 18, 100, 89, 50)
name, *gender, age, num = person
print(name, gender, age, num)
           

2.字典基礎

1.什麼時候使用字典:

a.需要同時儲存多個資料

b.多個資料的意義不同(需要做區分)

2.什麼是字典(dict)

字典是容器型資料類型,将{}作為容器的标志,多個元素用逗号,隔開,字典元素都是鍵值對

{鍵1: 值1, 鍵2:值2, }

字典是可變的,支援增删改,字典是無序的,不支援下标操作

字典對元素的要求:必須所有元素都是鍵值對

鍵 - 是不可變的,是唯一的,一般是字元串

值 - 任何類型的資料,可以重複

字典在儲存資料的時候,真正儲存的是值,鍵是用來對值進行區分和說明的

2.擷取字典的值

1.擷取單個元素對應的值

a. 字典[key] - key不存在會報錯

b. 字典.get(key) - key不存在時候不報錯,報None

c. 字典.get(key, 預設值) - key不存在時候不報錯,并且傳回預設值

2 周遊

for 變量 in 字典

​ 循環體

這裡變量取到的是字典中所有的key

dog = {'name': '财财', 'age': 3, 'breed': '土狗', 'gender': '母', 'weight': 10}
for x in dog:
    print(x, dog[x])
           

練習:聲明一個變量,同時儲存四個學生的資訊,每個學生需要包含學生的姓名、年齡、電話、成績,統計四個學生中未成年人的個數

students = [{'name': 'zhang', 'age': 19, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 13, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 17, 'tel': 110, 'score': 70}, {'name': 'zhang', 'age': 190, 'tel': 110, 'score': 70}]
count = 0
for x in students:
    if x['age'] < 18:
        count += 1
print('未成年人個數', count)
           

3,字典元素的增删改

1.增、改

文法一:

字典[key] = 新值

改:如果key存在,就将key對應的值修改成指定的值

增:如果key不存在,就以"key: 新值"的形式添加一個鍵值對

文法二:

添加鍵值對 :字典.setdufault(鍵,值)

movie = {'name': '西遊記', 'time': '1978-10-23', 'director': '吳承恩'}
print(movie)
movie['time'] = '1989-10-2'
print(movie)
movie['score'] = 9.0
print(movie)
movie.setdefault('type', '神話')
print(movie)
           

2.删

1.del

Del 字典[key] - 删除指定key對應的鍵值對(key不存在會報錯)

2.pop

字典.pop(key) - 取出字典中指定key對應的值,并傳回取出的值

del movie['director']
print(movie)
value = movie.pop ('type')
print(movie)
           

4.字典相關操作和方法

1.字典相關操作

字典不支援加法和乘法運算

1.比較運算:

字典不可以比較大小,隻能比較相等

2.in 和 not in

資料 in 字典 - 判斷字典中是否存在指定的key

資料 not in 字典 - 判斷字典中是否不存在指定的key

cat = {'name': '花花', 'age': 2, 'colour': '白色'}
print('name' in cat)  # True
print('花花' in cat)  # False
           

3.相關函數

len(字典) - 統計字典中鍵值對的個數

dict(資料) - 将指定的資料轉換成字典

此處對資料的要求:

1.是容器型資料類型

2.資料中的元素是有且隻有兩個元素的容器

3.小容器中的第一個元素是不可變的

字典轉換成其他資料類型:

bool(字典) - 空字典會轉換成false,其他都輸True

隻有數字類型和小部分字元串能轉換成數字,其他不行,字典也不行

list(字典) - 把字典所有的key轉換成清單元素

touple(字典) - 把字典所有的key轉換成元組元素

print(len(cat))
print(dict([[42, 12], [235, 6346]]))  # {42: 12, 235: 6346}
print(list(cat))
           

2.相關方法

1、 字典.clear() - 清空字典

2、字典.copy() - 複制字典并産生一個新的字典并傳回

3、dict.fromkeys() - 建立字典

dict.fromkeys(序列) - 将序列中的元素都作為字典的key,字典的值為none

dict.fromkeys(序列, 值) - 将序列中的元素都作為字典的key,字典的值都是指定的值

stu = dict.fromkeys(['name', 'age', 'gender', 'tel', 'address', 'score'])
print(stu)
           

4.items, keys, values

print(cat.keys()) # 擷取字典所有的key傳回一個容器,這個容器不是清單

print(cat.values()) # 擷取字典所有的值傳回一個容器,這個容器不是清單

print(cat.items()) #擷取字典所有的鍵值對傳回一個容器,這個容器不是清單,容器中的元素是元組,每個元組對應一個鍵值對

  1. update

    字典.update(序列) - 用序列生成的字典去更新原字典(更新方式:不存在就添加,存在就修改)

    dict4 = {'a', '10', 's', '35'}
    dict4.update({'a', 100, 'for'})
    
               

5.集合(set)

1.什麼是集合

集合是容器型資料類型,将{}作為容器的标志,裡面多個元素用逗号,隔開

元素是普通資料不是鍵值對

{元素1, 元素2, 元素3,…}

集合是可變的,支援增删改

集合是無序的

集合對元素的要求:集合中的元素是不可變并且唯一的,清單不能作為集合中的元素

可以利用集合元素的唯一性進行去重操作

空集合:

empty = set() # {}是空字典

非空集合

set1 = {1, 123, 524}

2.集合中元素的增删改查

1查

集合沒有辦法直接擷取單個元素,隻能周遊

‘’’

for 變量 in 集合

循環體

變量取到的就是集合中的每個元素

‘’’

nums = {42, 525, 563, 56745, 575}

for x in nums:

print(x)

2增

‘’’

方法1

a.集合.add(元素)

b.集合.update(序列) - 将序列中元素全部添加到集合中,序列中元素必須是不可變的

‘’’

nums.add(1000)

print(nums)

nums.update((1, 23, 35))

print(nums)

3删

‘’’

集合.remove(元素) - 删除集合中指定的元素(元素不存在會報錯)

集合.discard(元素) - 删除集合中指定的元素(元素不存在不會報錯)

‘’’

4改 : 集合無法修改元素

3.數學集合運算

1 Python中的集合支援數學集合運算

2并集 |

3 差集 - 集合1 - 集合2 : 集合1中除了集合2剩下的部分

4對稱差集^ 去掉兩個集合公共部分後剩下的部分

5真子集 >,<

集合1 > 集合2 - 判斷集合2是否是集合1的真子集

集合1 < 集合2 - 判斷集合1是否是集合2的真子集