日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 字典推导式 - Python零基础入门教程

發布時間:2024/9/27 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 字典推导式 - Python零基础入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一.Python 字典推導式簡介
  • 二.Python 字典推導式語法
  • 三.Python 字典推導式實戰
    • 1.在字典中提取或者修改數據,返回新的字典
    • 2.在字符串中提取數據,返回新的字典
  • 四.重點總結
  • 五.猜你喜歡

零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門

一.Python 字典推導式簡介

前面文章中我們介紹了 Python 條件推導式 和 Python 列表推導式,實際上就是把多行代碼合并為一行代碼的操作,使用推導式可以讓程序的運行效率更高

Python 字典推導式是從一個或者多個迭代器快速簡潔地創建數據類型的一種方法,它將循環和條件判斷結合,從而避免語法冗長的代碼,提高代碼運行效率能熟練使用推導式也可以間接說明你已經超越了 Python 初學者的水平**。**

Python 推導式相關:

  • 條件推導式
  • 列表推導式
  • 字典推導式

二.Python 字典推導式語法

字典推導式使用方法其實也類似,也是通過循環和條件判斷表達式配合使用,不同的是字典推導式返回值是一個字典,所以整個表達式需要寫在{}內部。

''' 語法一:key:字典中的keyvalue:字典中的valuedict.items():序列condition:條件表達式key_exp:在for循環中,如果條件表達式condition成立(即條件表達式成立),返回對應的key,value并作key_exp,value_exp處理 value_exp:在for循環中,如果條件表達式condition成立(即條件表達式成立),返回對應的key,value并作key_exp,value_exp處理 '''{key_exp:value_exp for key,value in dict.items() if condition}''' 語法二:key:字典中的key value:字典中的value dict.items():序列 condition:條件表達式 key_exp:在for循環中,如果條件表達式condition成立(即條件表達式成立),返回對應的key,value并作key_exp,value_exp處理 value_exp1:在for循環中,如果條件表達式condition成立(即條件表達式成立),返回對應的key,value并作key_exp,value_exp1處理value_exp2:在for循環中,如果條件表達式condition不成立(即條件表達式不成立),返回對應的key,value并作key_exp,value_exp2處理'''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}

三.Python 字典推導式實戰

在以下的內容中涉及到字符串的大小寫轉換/拆分等函數,不熟悉使用的可以先熟悉以下字符串相關操作:python 字符串.

1.在字典中提取或者修改數據,返回新的字典

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python Python 字典推導式.py @Time:2021/3/27 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""# 案例一:獲取字典中key值是小寫字母的鍵值對 dict1 = {"a":10,"B":20,"C":True,"D":"hello world","e":"python教程"} dict2 = {key:value for key,value in dict1.items() if key.islower()} print(dict2)# 案例二:將字典中的所有key設置為小寫 dict3 = {key.lower():value for key,value in dict1.items() } print(dict3)# 案例三:將字典中所有key是小寫字母的value統一賦值為'error' dict4 = {key:value if key.isupper() else "error" for key,value in dict1.items() } print(dict4)'''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}''' 輸出結果: {'a': 10, 'e': 'python教程'} {'a': 10, 'b': 20, 'c': True, 'd': 'hello world', 'e': 'python教程'} {'a': 'error', 'B': 20, 'C': True, 'D': 'hello world', 'e': 'error'} '''{key_exp:value_exp1 if condition else value_exp2 for key,value in dict.items()}'''

2.在字符串中提取數據,返回新的字典

在后期的爬蟲課程中,我們需要獲取 cookies 并以字典的形式傳參,如果 cookies 是字符串則需要轉換為字典 dict ,經典代碼案例如下:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python Python 字典推導式.py @Time:2021/3/27 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""cookies = "anonymid=jy0ui55o-u6f6zd; depovince=GW; _r01_=1; JSESSIONID=abcMktGLRGjLtdhBk7OVw; ick_login=a9b557b8-8138-4e9d-8601-de7b2a633f80; _ga=GA1.2.1307141854.1562980962; _gid=GA1.2.201589596.1562980962; _c1=-100; first_login_flag=1; ln_uact=18323008898; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106763; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106765; jebecookies=793eb32e-92c6-470d-b9d0-5f924c335d30|||||; _de=E77807CE44886E0134ABF27E72CFD74F; p=a00d65b1f779614cd242dc719e24c73e0; t=292ba8729a4151c1a357e176d8d91bff0; societyguester=292ba8729a4151c1a357e176d8d91bff0; id=969937120; xnsid=1700b2cc; ver=7.0; loginfrom=null; wp_fold=0"# 字典推導式 cookies = {cookie.split("=")[0]:cookie.split("=")[1] for cookie in cookies.split("; ")} print(cookies)''' 輸出結果: {'anonymid': 'jy0ui55o-u6f6zd', 'depovince': 'GW', '_r01_': '1', 'JSESSIONID': 'abcMktGLRGjLtdhBk7OVw', 'ick_login': 'a9b557b8-8138-4e9d-8601-de7b2a633f80', '_ga': 'GA1.2.1307141854.1562980962', '_gid': 'GA1.2.201589596.1562980962', '_c1': '-100', 'first_login_flag': '1', 'ln_uact': '18323008898', 'ln_hurl': 'http://head.xiaonei.com/photos/0/0/men_main.gif', 'jebe_key': '88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106765', 'jebecookies': '793eb32e-92c6-470d-b9d0-5f924c335d30|||||', '_de': 'E77807CE44886E0134ABF27E72CFD74F', 'p': 'a00d65b1f779614cd242dc719e24c73e0', 't': '292ba8729a4151c1a357e176d8d91bff0', 'societyguester': '292ba8729a4151c1a357e176d8d91bff0', 'id': '969937120', 'xnsid': '1700b2cc', 'ver': '7.0', 'loginfrom': 'null', 'wp_fold': '0'}'''

代碼分析:

在字符串 cookies 中 ‘=’ 前面是 key ,’=’ 后面是 value ,每一個 ‘;’ 構成一個鍵值對;多個鍵值對構成一個字典;

  • 1.根據 ‘;’ 將字符串拆分為列表;
  • 2.根據第一步獲取的列表,遍歷時將每一個字符串根據 ‘=’ 再次拆分;
  • 3.根據第二步拆分的結果,列表第一個元素作為 key ,列表第二個元素作為 value ;

四.重點總結

Python 字典推導式和列表推導式的效率均比普通的 for 循環效率更高,在文章 Python 列表推導式文章末尾有做過測試,有興趣的小伙伴可以直接前往:Python 列表推導式;

注意字典推導式與列表推導式的區別:

  • 1.列表推導式返回列表,表達式在中括號[]中
  • 2.字典推導式返回字典,表達式在大括號{}中

五.猜你喜歡

  • Python 配置環境
  • Python 變量
  • Python 運算符
  • Python 條件判斷 if/else
  • Python while 循環
  • Python break
  • Python continue
  • Python for 循環
  • Python 字符串
  • Python 列表 list
  • Python 元組 tuple
  • Python 字典 dict
  • Python 條件推導式
  • Python 列表推導式
  • Python 字典推導式
  • 未經允許不得轉載:猿說編程 ? Python 字典推導式

    總結

    以上是生活随笔為你收集整理的Python 字典推导式 - Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。