第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

初始化空列表的字典

初始化空列表的字典

富國(guó)滬深 2022-11-01 15:58:36
我正在嘗試初始化空列表的字典以附加到它們,但是這導(dǎo)致了一些奇怪的行為:def solution(A):    d = dict.fromkeys(set(A), [])    for i in range(len(A)):        d[A[i]].append(i)    print(d)輸入:[3, 4, 3, 2, 3, -1, 3, 3]輸出:{2: [0, 1, 2, 3, 4, 5, 6, 7], 3: [0, 1, 2, 3, 4, 5, 6, 7], 4: [0, 1, 2, 3, 4, 5, 6, 7],-1: [0, 1, 2, 3, 4, 5, 6, 7]}dict.fromkeys似乎將所有列表初始化為指向同一列表的指針,這是發(fā)生了什么嗎?我怎么知道這將是行為/為什么會(huì)是行為?有沒(méi)有辦法告訴口譯員不要這樣做?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

我怎么知道這是行為

Python 文檔說(shuō)明了這一點(diǎn)并警告您:

來(lái)自keys的類(lèi)方法(可迭代[,])

創(chuàng)建一個(gè)新字典,其中鍵來(lái)自可迭代,值設(shè)置為value。

fromkeys()是一個(gè)返回新字典的類(lèi)方法。默認(rèn)為None. 所有的值都只引用一個(gè)實(shí)例,因此value是一個(gè)可變對(duì)象(例如空列表)通常是沒(méi)有意義的。要獲得不同的值,請(qǐng)改用 dict 理解。


查看完整回答
反對(duì) 回復(fù) 2022-11-01
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

你所有的列表都是同一個(gè)對(duì)象。[]只是一個(gè)文字表達(dá)式,在傳遞給dict.fromkeys. 該函數(shù)如何知道如何復(fù)制任何隨機(jī)對(duì)象?

如果您想要這種行為,請(qǐng)選擇collections.defaultdict

from collections import defaultdict


def solution(A):

    d = defaultdict(list)  # `list` is a factory funtion that can be called repeatedly

    for i in range(len(A)):

        d[A[i]].append(i)

    print(d)

    # or, if you dislike the output (note, it is a dict already)

    # print(dict(d))


查看完整回答
反對(duì) 回復(fù) 2022-11-01
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

在 fromkeys 中,如果提供的值是可變的(如列表),則每個(gè)鍵的值將是對(duì)同一對(duì)象的引用,因此所有值都會(huì)立即更新。您可以通過(guò)附加到原始列表來(lái)測(cè)試這一點(diǎn),以產(chǎn)生與您得到的結(jié)果相同的結(jié)果:


def solution(A):

    lst = []

    d = dict.fromkeys(set(A), lst)

    for i in range(len(A)):

        lst.append(i)

    print(d)

除了提供的其他答案外,您還可以使用字典理解路線:


def solution(A):

    d = { key : [] for key in A }

    for i in range(len(A)):

        d[A[i]].append(i)

    print(d)


查看完整回答
反對(duì) 回復(fù) 2022-11-01
  • 3 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)