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

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

將列表值替換為字典值

將列表值替換為字典值

蠱毒傳說 2022-09-20 17:47:10
我有一個示例代碼似乎不能很好地工作,我已經在線嘗試了不同的解決方案,但失敗了。我有一個列表,它廢棄了一個網站并返回動態的特殊div(每次運行代碼時都會更改)。lvlv = ['div5', 'div3', 'div4', 'div1', 'div2']我有一個列表知道,其中包含要替換的文本類型,nvnv = ['div1', 'div2', 'div3', 'div4', 'div5']我還有一個名為的字典,它將值設置為某些值mmnvmm = {nv[0]:'type1',nv[1]:'type2',nv[2]:'type3', nv[3]:'type4',  nv[4]:'type5'}現在我想使用inde方法打印結果,因為對于其中的每個值,它應該檢查該值是否對應于值,然后將該值替換為字典值lv[0:5]nvprint(lv[0:5])#output should be like this'type1','type3','type4','type2', 'type1'這是我的完整原始源代碼:“”蟒蛇    lv = [l for l in cur.find_all(id=levels)]    nv = [        '<div id="map-innercontainer-weak3" style="background-image:none"> </div>',        '<div id="map-innercontainer-strong3"> </div>',        '<div id="map-innercontainer-strong2"> </div>',        '<div id="map-innercontainer-strong1"> </div>',        '<div id="map-innercontainer-weak1"> </div>',        '<div id="map-innercontainer-weak2"> </div>',        '<div id="map-innercontainer-weak3"> </div>',    ]    mm = {        nv[0]:'',        nv[1]:'Strong3',        nv[2]:'Strong2',        nv[3]:'Strong1',        nv[4]:'Weak1',        nv[5]:'Weak2',        nv[6]:'Weak3',    }    # #Show out the results to the user    print(f'Currency\t\tStrength\n')    print(f'{pairs[0].text}\t\t\t{lv[0:6]}\n')    print(f'{pairs[1].text}\t\t\t{lv[6:12]}\n')    print(f'{pairs[2].text}\t\t\t{lv[12:18]}\n')    print(f'{pairs[3].text}\t\t\t{lv[18:24]}\n')    print(f'{pairs[4].text}\t\t\t{lv[24:30]}\n')    print(f'{pairs[5].text}\t\t\t{lv[30:36]}\n')它輸出這個,但我想用DICT值替換DIV    Currency        Strength    EURO            [<div id="map-innercontainer-weak3" style="background-image:none"> </div>, <div id="map-innercontainer-weak3" style="background-image:none"> </div>, <div id="map-innercontainer-weak3" style="background-image:none"> </div>, <div id="map-innercontainer-weak3" style="background-image:none"> </div>, <div id="map-innercontainer-weak3" style="background-image:none"> </div>, <div id="map-innercontainer-weak3"> </div>]
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

這是列表理解的一個很好的用例,例如使用以下代碼:

print([ mm[item] for item in lv ])

這樣做是按順序遍歷lv的所有元素(如您所描述的),并打印一個列表,其中列表的每個元素都是lv中相應元素是鍵的值。


查看完整回答
反對 回復 2022-09-20
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

我做了一個簡單的for循環來嘗試解決這個問題。它循環遍歷 lv 列表的長度,并將每個 lv 項設置為字典中的相應項。

for i in range(len(lv)):
    lv[i] = mm[lv[i]]

輸出:[類型5“、”類型3“、”類型4“、”類型1“、”類型2“]


查看完整回答
反對 回復 2022-09-20
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

我終于想通了,我用這兩個函數刪除了多個字符串


def multiple_replacer(*key_values):

    replace_dict = dict(key_values)

    replacement_function = lambda match: replace_dict[match.group(0)]

    pattern = re.compile("|".join([re.escape(k) for k, v in key_values]), re.M)

    return lambda string: pattern.sub(replacement_function, string)


def multiple_replace(string, *key_values):

    return multiple_replacer(*key_values)(string)

現在輸出給了我想要的東西。


EURO            [ weak3  ,  weak3  ,  weak3  ,  weak3  ,  weak2 ,  weak3 ]


查看完整回答
反對 回復 2022-09-20
  • 3 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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