亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python3中檢索對象列表/字典中的項目值的問題

在Python3中檢索對象列表/字典中的項目值的問題

喵喔喔 2022-05-24 17:20:29
我正在嘗試將字符串變量放入 python3.7 中的列表/字典中,并嘗試稍后檢索它們以供使用。我知道我可以創建一個字典,如:string_dict1 = {"A":"A", "B":"B", "C":"C", "D":"D", "E":"E", "F":"F"}然后檢索值,但在這種特定情況下不是我想要的。這是代碼:A = ""B = "ABD"C = ""D = "sddd"E = ""F = "dsas"string_dict = {A:"A", B:"B", C:"C", D:"D", E:"E", F:"F"}string_list = [A,B,C,D,E,F]for key,val in string_dict.items():    if key == "":        print(val)for item in string_list:    if item == "":        print(string_list.index(item))我得到的結果是:E000我想要的結果是:ACE024
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

如果您打印string_dict,您會注意到問題:


string_dict = {A:"A", B:"B", C:"C", D:"D", E:"E", F:"F"}

print(string_dict)

# output: {'': 'E', 'ABD': 'B', 'sddd': 'D', 'dsas': 'F'}

它包含一個值為 的條目""。

這是因為你將多個值關聯到同一個鍵,而這在 python 中是不可能的,所以只有最后一個賦值是有效的(在這種情況下E:"E")。


如果要將多個值與同一個鍵關聯,可以關聯一個列表:


string_dict = {A:["A","C","E"], B:"B", D:"D", F:"F"}

關于字符串列表string_list,您得到 0,因為該方法.index(item)返回列表中第一次出現的索引item。在您的情況下為 0。例如,如果您將列表更改[A,B,C,D,E,F]為[B,B,C,D,E,F]. 您的代碼將打印2.


如果要打印列表中空字符串的索引:


for index, value in enumerate(string_list):

    if value == '':

        print(index)

或者以更優雅的方式,您可以使用列表推導:


[i for i,x in enumerate(string_list) if x=='']


查看完整回答
反對 回復 2022-05-24
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

好吧,我不認為有辦法從字典中得到你想要的,因為它們是如何工作的。你可以打印你的字典,看看它看起來像這樣:


{'': 'E', 'ABD': 'B', 'sddd': 'D', 'dsas': 'F'}

這里發生的事情是 A 被 C 覆蓋,然后被 E 覆蓋。


但是我玩弄了這個列表,這就是我正確獲得最后三位數字的方法:


for item in string_list:

    if item != '':

        print(string_list.index(item) - 1)

這打?。?/p>


0

2

4


查看完整回答
反對 回復 2022-05-24
  • 2 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號