91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python列表、字典、循環、判斷舉例分析

發布時間:2021-11-25 11:44:23 來源:億速云 閱讀:144 作者:iii 欄目:互聯網科技

本篇內容主要講解“python列表、字典、循環、判斷舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python列表、字典、循環、判斷舉例分析”吧!

練習案例

下面通過一個簡化的虛擬案例做一次深入學習python小練習,有某果園銷售數據如下:

sell_list = [
    {'客戶': '張三', '種類': '蘋果','數量':100},
    {'客戶': '李四', '種類': '蘋果','數量':200},
    {'客戶': '李四', '種類': '香梨','數量':200},
    {'客戶': '李四', '種類': '香梨','數量':300},
    {'客戶': '張三', '種類': '蘋果','數量':100},
    {'客戶': '王五', '種類': '香蕉','數量':500},
    {'客戶': '王五', '種類': '香蕉','數量':150},
    {'客戶': '王五', '種類': '香蕉','數量':150},
    {'客戶': '王五', '種類': '蘋果','數量':500},
    {'客戶': '趙六', '種類': '葡萄','數量':300},
    {'客戶': '李四', '種類': '葡萄','數量':300},
    {'客戶': '趙六', '種類': '蘋果','數量':300},
]

客戶希望對數據進行整理,期待得到的數據集格式類似如下這樣:

result_list = [
    ['張三', {'蘋果': 300, '香蕉': 200, }],
    ['李四', {'蘋果': 100, '香蕉': 200, }],
    ['王五', {'蘋果': 100, '香蕉': 200, }],
]

需求分析

客戶原始數據池是列表,列表元素是客戶、果名、數量。現在的需求是對列表元素進行匯總,得出客戶、果名、數量的匯總表。

首先遍歷原始數據池,判斷客戶名

  • 若在數據集中客戶名不存在,則數據集中添加客戶名,同時將果名和數量以字典格式加入數據集。

  • 若在數據集中客戶名存在,則判斷果名

    • 若在數據集中果名存在,則將數量累加。

    • 若在數據集中果名不存在,則添加果名和數量。

通過以上分析有個大致的框架,通過2層嵌套循環加判斷來編寫代碼。

具體代碼

我設想的代碼有2種方案:

  • 二層循環嵌套if的列表實現方式,優點是較省內存,缺點是速度略慢:

result_list = []
for i in sell_list:
    for j in result_list:
        if j[0] == i['客戶']:
            if i['種類'] not in j[1]:
                j[1][i['種類']] = i['數量']
            else:
                j[1][i['種類']] = j[1][i['種類']] + i['數量']
            break
    else:
        result_list.append([i['客戶'], {i['種類']: i['數量'], }])

for i in result_list:
    print(i)

out:
['張三', {'蘋果': 200}]
['李四', {'蘋果': 200, '香梨': 500, '葡萄': 300}]
['王五', {'香蕉': 800, '蘋果': 500}]
['趙六', {'葡萄': 300, '蘋果': 300}]

上述代碼有一個需要特別注意的地方,循環體內break會跳過整個循環體(含循環體的else部分)。這一點很多教材都沒有講得很透徹。

  • 單層循環嵌套if的字段實現方式,優點是速度較快,缺點是較費內存:

result_dict = {}
for i in sell_list:
    if i['客戶'] in result_dict:
        if i['種類'] not in result_dict[i['客戶']]:
            result_dict[i['客戶']][i['種類']] = i['數量']
        else:
            result_dict[i['客戶']][i['種類']] += i['數量']
    else:
        result_dict[i['客戶']] = {i['種類']: i['數量']}

for i, j in result_dict.items():
    print(i, j)

out:
張三 {'蘋果': 200}
李四 {'蘋果': 200, '香梨': 500, '葡萄': 300}
王五 {'香蕉': 800, '蘋果': 500}
趙六 {'葡萄': 300, '蘋果': 300}

在字典實現方式中看起來是比列表實現方式少了一層循環,實質上這個循環的目的在“if i['種類'] not in result_dict[i['客戶']]:”這個部分已經實現了,在容器中找成員,字典是速度最快同時也是最費內存的方式。

到此,相信大家對“python列表、字典、循環、判斷舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

望江县| 兴业县| 津市市| 汉沽区| 井陉县| 广安市| 五指山市| 长寿区| 忻州市| 类乌齐县| 蚌埠市| 临城县| 邹平县| 工布江达县| 贵溪市| 永顺县| 定日县| 岑巩县| 涞源县| 图木舒克市| 固始县| 乐安县| 横峰县| 黄梅县| 枣阳市| 长岭县| 河北省| 云龙县| 京山县| 富川| 福泉市| 马鞍山市| 将乐县| 台北市| 遂平县| 张家港市| 响水县| 西吉县| 西峡县| 榕江县| 襄垣县|