如何将字典值附加到现有字典值?

时间:2021-02-14 11:30:49

标签: python dictionary merge append key

假设我有一个:

dict = {"Main": ["Tammy","Elisha","Julius"],
        "Elisha": ["Kenneth"]
       }

上下文就像一个队列系统。 Main 是普通队列。而“Elisha:[Kenneth]”就像一个切线队列。您可以想象,当 Elisha 决定将他的朋友 Kenneth 带入队列时,每个人都在正常排队等候 MacDonald。

我如何将 "Kenneth" 附加到 "Main":"Elisha" 以便在我打印 dict['Main'] 时它会返回以下预期输出:

预期输出:[Tammy, Elisha, Kenneth, Julius ]

如果以利沙决定引入另一个朋友,“以利沙”:[“妮可”]。那么预期的输出将是:

预期输出:[ Tammy, Elisha, Kenneth, Nicole, Julius ]

我尝试在谷歌上搜索 append,但是 append 对字典不起作用,而只能在列表中使用。

我试过了:

dict['Main'].value("Elisha").append("Kenneth")

但它返回了错误。

2 个答案:

答案 0 :(得分:0)

您需要为您的案例使用 coef<-ldply(S_models, coef)

extend

输出:

dic = {"Main":["Tammy","Elisha","Julius"],
        "Elisha": ["Kenneth", "Nicole"]
       }
dic["Main"].extend(dic["Elisha"])
print(dic["Main"])

另外,避免对对象名称使用关键字 ['Tammy', 'Elisha', 'Julius', 'Kenneth', 'Nicole'] 以避免影响构建行为。

更新:

要在特定的 dict 处插入,您可以先使用 index 方法获取要插入的索引,然后使用切片插入新列表:

index()

答案 1 :(得分:0)

可以递归打印队列 工作原理:

  1. 创建一个空队列
  2. Main 队列中的第一个人开始
  3. 将该人添加到1中提到的空队列
  4. 检查是否有那个人的朋友,如果有
  5. 将他们添加到 1 中提到的队列中,并检查他们的朋友是否存在
d = {"Main":["Tammy","Elisha","Julius"],

        "Elisha": ["Kenneth"]
       }

def get_flattened_queue(data, key, flattened_queue):
    members = data[key]
    for each_member in members:
        flattened_queue.append(each_member)
        if each_member in data.keys():
            get_flattened_queue(data, each_member, flattened_queue)
    return flattened_queue

flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)

print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Julius']

现在假设 Elisa 带来 Nicole

d = {"Main":["Tammy","Elisha","Julius"],

        "Elisha": ["Kenneth"]
       }

def get_flattened_queue(data, key, flattened_queue):
    members = data[key]
    for each_member in members:
        flattened_queue.append(each_member)
        if each_member in data.keys():
            get_flattened_queue(data, each_member, flattened_queue)
    return flattened_queue

# Here she brings Nicole
d['Elisha'].append('Nicole')

#{"Main":["Tammy","Elisha","Julius"],
#        "Elisha": ["Kenneth", "Nicole"]
#       }

flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)

print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Julius']

d = {"Main":["Tammy","Elisha","Julius"],

        "Elisha": ["Kenneth"]
       }

def get_flattened_queue(data, key, flattened_queue):
    members = data[key]
    for each_member in members:
        flattened_queue.append(each_member)
        if each_member in data.keys():
            get_flattened_queue(data, each_member, flattened_queue)
    return flattened_queue

# Here she brings Nicole
d['Elisha'].append('Nicole')

#{"Main":["Tammy","Elisha","Julius"],
#        "Elisha": ["Kenneth", "Nicole"]
#       }

# Nicole brings Epsi95
d['Nicole'] = ['Epsi95']

flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)

print(flattened_queue)
{'Main': ['Tammy', 'Elisha', 'Julius'],
 'Elisha': ['Kenneth', 'Nicole'],
 'Nicole': ['Epsi95']}


['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Epsi95', 'Julius']