日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

使用Python對數(shù)據(jù)進(jìn)行操作轉(zhuǎn)換

來源: 責(zé)編: 時間:2023-10-10 18:30:53 253觀看
導(dǎo)讀1、列表加值轉(zhuǎn)字典在Python中,將列表的值轉(zhuǎn)換為字典的鍵可以使用以下代碼:#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試myList = ["name", "age", "location"]myDict = {k: None for k in my

Pg828資訊網(wǎng)——每日最新資訊28at.com

1、列表加值轉(zhuǎn)字典

在Python中,將列表的值轉(zhuǎn)換為字典的鍵可以使用以下代碼:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試myList = ["name", "age", "location"]myDict = {k: None for k in myList}print(myDict)

輸出:Pg828資訊網(wǎng)——每日最新資訊28at.com

{'name': None, 'age': None, 'location': None}

在上面的代碼中,我們首先定義一個列表 myList,接著,我們使用字典推導(dǎo)式,創(chuàng)建一個新的字典 myDict,其中字典的鍵是從列表 myList 中獲取的每個元素,而對應(yīng)的值都設(shè)置為 None。Pg828資訊網(wǎng)——每日最新資訊28at.com

如果想讓列表中的值對應(yīng)不同的值,只需在推導(dǎo)式中指定相應(yīng)的值即可,例如:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試myList = ["name", "age", "location"]myValues = ["John", 22, "Bei Jing"]myDict = {myList[i]: myValues[i] for i in range(len(myList))}print(myDict)

輸出:Pg828資訊網(wǎng)——每日最新資訊28at.com

{'name': 'John', 'age': 22, 'location': 'Bei Jing'}

在上面的代碼中,我們創(chuàng)建一個包含鍵、值的列表,然后使用循環(huán)和字典推導(dǎo)式來創(chuàng)建字典,其中列表中的每個值對應(yīng)于字典中的一個鍵和一個值。Pg828資訊網(wǎng)——每日最新資訊28at.com

2、字典鍵新增值數(shù)據(jù)

根據(jù)上面的代碼,對每個鍵又新增了2條數(shù)據(jù),該如何操作。Pg828資訊網(wǎng)——每日最新資訊28at.com

如果想要在已經(jīng)存在的字典中為每個鍵添加多個值,可以將值存儲在列表中,然后將列表作為鍵對應(yīng)的值,例如:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試myDict = {"name": ["John"], "age": [22], "location": ["Bei Jing"]}# 為 name 增加兩個新值myDict["name"].extend(["Alice", "Bob"])print(myDict)# 為 age 和 location 增加兩個新值myDict["age"].append(25)myDict["location"].extend(["Shang Hai", "Guang Zhou"])print(myDict)

輸出:Pg828資訊網(wǎng)——每日最新資訊28at.com

{'name': ['John', 'Alice', 'Bob'], 'age': [22], 'location': ['Bei Jing']}{'name': ['John', 'Alice', 'Bob'], 'age': [22, 25], 'location': ['Bei Jing', 'Shang Hai', 'Guang Zhou']}

在上面的代碼中,我們首先在字典中為每個鍵初始化一個列表,然后可以使用字典鍵和列表方法來添加由多個值組成的列表。Pg828資訊網(wǎng)——每日最新資訊28at.com

3、轉(zhuǎn)換新的字典格式

如何將[{'key': 'name', 'value': 'John'}, {'key': 'location', 'value': 'Bei Jing'}]數(shù)據(jù)更改為{'name': 'John', 'location': 'Bei Jing'}Pg828資訊網(wǎng)——每日最新資訊28at.com

可以使用一個循環(huán)來遍歷列表中的字典,然后將每個字典的鍵和值提取出來,組成一個新的字典。具體如下:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試# 原始數(shù)據(jù)data = [{'key': 'name', 'value': 'John'}, {'key': 'location', 'value': 'Bei Jing'}]# 新的字典new_dict = {}for item in data:    key = item['key']    value = item['value']    new_dict[key] = valueprint(new_dict)

輸出:Pg828資訊網(wǎng)——每日最新資訊28at.com

{'name': 'John', 'location': 'Bei Jing'}

首先定義一個空字典 new_dict,用于存儲新的數(shù)據(jù)。然后使用 for 循環(huán)遍歷原始數(shù)據(jù)中的每個字典。在循環(huán)中,使用 item['key'] 和 item['value'] 分別獲取當(dāng)前字典的鍵和值,并使用 new_dict[key] = value 將其存儲到新的字典中,最后輸出新的字典即可。Pg828資訊網(wǎng)——每日最新資訊28at.com

4、兩組數(shù)據(jù)比較篩選

有兩組數(shù)據(jù),list1['code', 'data.totalPage', 'data.type']和list2['code', 'description', 'errCode', 'error', 'msg', 'message', 'success', 'btSuccess', 'btCode', 'btMsg', 'header.mss'],篩選list1里面的元素不存在list2里,則預(yù)期的篩選結(jié)果為['data.totalPage', 'data.type']。Pg828資訊網(wǎng)——每日最新資訊28at.com

可以使用列表推導(dǎo)式以及not in語句來實現(xiàn)篩選:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試list1 = ['code', 'data.totalPage', 'data.type']list2 = ['code', 'description', 'errCode', 'error', 'msg', 'message', 'success', 'btSuccess', 'btCode', 'btMsg', 'header.mss']result = [ele for ele in list1 if ele not in list2]print(result)

輸出:Pg828資訊網(wǎng)——每日最新資訊28at.com

['data.totalPage', 'data.type']

其中,列表推導(dǎo)式的語法格式為:[返回值 for in 條件語句],它可以將符合條件的元素一次性生成到一個新列表中。而not in語句則表示不在列表中的元素。因此,上述代碼中的列表推導(dǎo)式就是遍歷list1中的每個元素ele,如果ele不在list2中,則將其添加到結(jié)果列表中。Pg828資訊網(wǎng)——每日最新資訊28at.com

5、將兩段獨立代碼合并

有兩段獨立的代碼,都有for循環(huán)。Pg828資訊網(wǎng)——每日最新資訊28at.com

hj = HandleJson(data_dict)res = hj.find_key_path('request')print(res)print(type(res))# request-循環(huán)for count_i, api_i in enumerate(res):    # request    json_request = eval(str(data_dict) + api_i)    # print("json_request " + str(json_request))    # name    json_name = eval(str(data_dict) + api_i.replace("request", "name"))    print("count_i 第 " + str(count_i + 1) + " 個接口")    print("json_name " + str(json_name))hj2 = HandleJson(data_dict)res2 = hj2.find_key_path('response')print(res2)print(type(res2))# response-循環(huán)for count_i, api_i in enumerate(res2):    # response    json_response = eval(str(data_dict) + api_i)    print("json_response " + str(json_response))    if json_response:        print("json_response 不為空")        for count_i_i, api_i_i in enumerate(json_response):            # print(api_i_i)            # name            json_name = eval(str(api_i_i) + str(["name"]))            print("count_i_i 第 " + str(count_i_i + 1) + " 個接口")            print("json_name " + str(json_name))

如何將這兩段代碼合并。Pg828資訊網(wǎng)——每日最新資訊28at.com

可以使用zip()函數(shù)將兩個循環(huán)的結(jié)果壓縮在一起,然后在一個for循環(huán)中同時遍歷兩個列表。具體代碼如下所示:Pg828資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號:AllTests軟件測試hj = HandleJson(data_dict)res = hj.find_key_path('request')res2 = hj.find_key_path('response')for count_i, (api_i, api_i2) in enumerate(zip(res, res2)):    # request-循環(huán)的代碼內(nèi)容    # response-循環(huán)的代碼內(nèi)容

本文鏈接:http://www.www897cc.com/showinfo-26-12698-0.html使用Python對數(shù)據(jù)進(jìn)行操作轉(zhuǎn)換

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Java日志管理:選擇合適的日志框架記錄應(yīng)用運行狀態(tài)

下一篇: 玩轉(zhuǎn)SpringBoot—Starter組件

標(biāo)簽:
  • 熱門焦點
  • 俄羅斯:將審查iPhone等外國公司設(shè)備 保數(shù)據(jù)安全

    iPhone和特斯拉都屬于在各自領(lǐng)域領(lǐng)頭羊的品牌,推出的產(chǎn)品也也都是數(shù)一數(shù)二的,但對于一些國家而言,它們的產(chǎn)品可靠性和安全性還是在限制范圍內(nèi)。近日,俄羅斯聯(lián)邦通信、信息技術(shù)
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機(jī)制進(jìn)行協(xié)調(diào)和交互,例如,線程等待和通知機(jī)制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現(xiàn)手段有以下幾種方式:Object 類下
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現(xiàn)自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業(yè)務(wù)來說可快速實現(xiàn)自動化的上手工作。Selenium IDEKat
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(消息堆積)、消費 三大塊領(lǐng)域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關(guān)代
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來源:價值研究所 作者:Hernanderz“難道就因為自己的一個產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運營上的問題,選擇逃避了嗎?”這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己“當(dāng)家”的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元“人在職場,應(yīng)該選擇什么樣的著裝?”近日,在網(wǎng)絡(luò)上,一個與著裝相關(guān)的帖子引發(fā)關(guān)注,在該帖子里,一位在高級寫字樓亞洲金
  • 2納米決戰(zhàn)2025

    集微網(wǎng)報道 從三強(qiáng)爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進(jìn)制程領(lǐng)先地位的英特爾,甚至初成立不久的新
  • 超級標(biāo)準(zhǔn)版旗艦!iQOO 11S全球首發(fā)iQOO超算獨顯芯片

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數(shù)亮相,而下半年即將推出的頂級旗艦已經(jīng)成為了數(shù)碼圈爆料的主流,其中就包括全新的iQOO 11S系
Top 主站蜘蛛池模板: 察隅县| 安宁市| 巴中市| 六枝特区| 察隅县| 祁连县| 仁寿县| 马鞍山市| 庄河市| 博客| 龙江县| 工布江达县| 四会市| 呼和浩特市| 黑龙江省| 伊通| 岱山县| 彭山县| 永福县| 双流县| 共和县| 丹凤县| 金坛市| 焦作市| 西华县| 涟源市| 梓潼县| 扎赉特旗| 沭阳县| 集安市| 崇礼县| 榕江县| 龙门县| 芒康县| 鹤峰县| 新绛县| 正阳县| 理塘县| 南汇区| 广水市| 陆丰市|