1. 程式人生 > >十二、字典(下):字典的巢狀

十二、字典(下):字典的巢狀

(一)、字典列表

字典列表,顧名思義就是以字典為元素的列表

# 三個字典儲存三個學生的資訊
student_0 = {'name': 'zhangsan', 'age': '18'}
student_1 = {'name':'lisi', 'age': '20'}
student_2 = {'name': 'wangwu', 'age':'18'}

# 建立一個列表,元素是字典
students = [student_0, student_1, student_2]

# 遍歷列印列表中的值
for student in students:
    print(student)

執行結果如下

{'name': 'zhangsan', 'age': '18'}
{'name': 'lisi', 'age': '20'}
{'name': 'wangwu', 'age': '18'}

(二)、在字典中儲存列表

不僅列表可以儲存字典,字典也可以儲存列表

# 建立一個字典,值為列表
favorite_lanaguages = {
    'Tom': ['Java', 'Python'],
    'Aidi': ['C', 'C++'],
}

# 遍歷列印字典
for name, lanaguages in favorite_lanaguages.items():
    print("\nname: " + name)
    print("favorite_lanaguage: ")
    # 值為列表,所以用 for 遍歷
    for lanaguage in lanaguages:
        print(lanaguage)

執行結果如下


name: Tom
favorite_lanaguage:
Java
Python

name: Aidi
favorite_lanaguage:
C
C++

(三)、在字典中儲存字典

在 Python 中,字典裡也可以儲存字典

# 建立一個字典,裡面包含字典
students = {
    'student_0' : {
        'name':'lisi', 
        'age':'20',
        },

    'student_1' : {
    'name':'zhangsan', 
    'age':'21',
        }
}

# 列印輸出字典檢視結果
print(students)

執行結果如下:

{'student_0': {'name': 'lisi', 'age': '20'}, 'student_1': {'name': 'zhangsan', 'age': '21'}}

雖然這樣使用在某些情況下很方便,但是如果巢狀過多,程式不容易讓人看懂

儘量避免巢狀過多

(四)、set

  1. set 的特點 :無序,無重複元素
  2. 如何要建立一個 set :以一個list(列表)作為輸入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
  1. 可以使用 set 過濾列表中的重複元素:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
  1. 如何新增元素:add(key)

重複新增一個已經有的元素不會顯示

  1. 如何刪除元素:remove(key)

  2. set 還可以做交集:取出兩個列表相同的元素

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
  1. set 還可以做並集:將兩個列表合併成一個列表並且去掉重複元素
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 | s2
{1, 2, 3, 4}