Python字典 - 是否可以在值中引用键?

3
我将定义字典如下:

字典是一种以键-值对形式存储数据的数据结构。

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

有没有一种语法可以让我做到这一点?

2
我不太清楚你想做什么,但是如果你去掉 $,那就是有效的 Python 语法。 - Matt
1
你可能想要写一个类,而不是一个函数,这个类的函数可以命名为getPlayerName()。只是一个建议,我不确定你具体想要做什么。 - Jeff LaFay
6
另外,我不建议使用 dict 作为变量名,因为它是一个内置函数。在编程中,永远不要使用内置函数(如 dictliststrtuple 等)作为变量名(这是一般的编程规范)。 - Rushy Panchal
3个回答

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'}

它们的形式为{:for变量in生成器}


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"}

我想做的是避免两次使用“Player”。 - Shagglez
@Shagglez 为什么?那就是你要这样做的方式。 - Matt
如果我想用“AdvancedPlayer”替换“Player”,该怎么办?我有两个引用需要替换。 - Shagglez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接