创建字典时是否可以引用value中的key?

问题描述 投票:0回答:4

我想定义一个字典如下:

dict = {
    Player: $key.Name + " takes some action"
}

是否有语法可以让我做到这一点?

我想避免使用

Player
两次。例如,如果我想用
Player
替换
AdvancedPlayer
,我有两个参考要替换。

python dictionary
4个回答
2
投票

字典理解可能有帮助。

>>> players = ["Mark", "Jack", "John"]
>>> player_dict = {k: k + " takes some action" for k in players}
>>> player_dict
{'John': 'John takes some action', 'Jack': 'Jack takes some action', 'Mark': 'Mark takes some action'}

它们的形式为

{
key
:
value
for
variable
in
iterable
}


1
投票
class Player(object): 
    def __init__(self, name):
        self.name = name

p1 = Player("bernard")
p2 = Player("hoagie")

t = (p1, p2, ...)
d = {p: p.name + " something something" for p in t}

0
投票

听起来您想在分配给该键的值中使用您正在创建的键。是的,这是可能的:

playerDict = {Player: Player + " takes some action"}

0
投票

对我来说,这个问题的含义与代码所暗示的不同,即:您希望在创建字典的相同上下文中在其值中引用字典键。

您可以使用海象 (

:=

) 运算符(来自 Python 3.8)来做到这一点:

d = { (k := "key"): f"Value + {k}" } print(d)
{'key': 'Value + key'}
    
© www.soinside.com 2019 - 2024. All rights reserved.