繁体   English   中英

如何在 for 循环中计算值作为字典键的一部分

[英]How do I counter value in a for loop as part of my dictionary key

我正在尝试创建一个 for 循环,每次循环时将键和值添加到字典中。 这个 for 循环的计数器值是每次添加到字典中的键名的一部分。 如何在不为键值定义单独的集合并将它们分配给键值的情况下对此进行编码? 或者更好地说,我怎样才能删除这条线? "y.insert(i, "这是关键号码" + str(i+1))"

这是我当前的代码:

Dic = {}
y = []
for i in range(0,4):
    y.insert(i, "This is key number " + str(i+1))
    Dic[y[i]] = "This is a constant value for all keys"

您实际上只是在列表的最后一个位置insert新项目(为此您应该使用append ,但这不是重点),然后从列表中获取该索引处的元素。 相反,您可以将它分配给一个临时变量,而不需要列表:

Dic = {}
for i in range(0,4):
    x = "This is key number " + str(i+1)
    Dic[x] = "This is a constant value for all keys"

当然,您也不需要该变量,您可以将表达式放入[...] (但可能会认为上述内容更具可读性):

Dic = {}
for i in range(0,4):
    Dic["This is key number " + str(i+1)] = "This is a constant value for all keys"

现在可以直接翻译成字典理解:

Dic = {"This is key number " + str(i+1): "This is a constant value for all keys" for i in range(0,4)}

经过一些清理(注意:f-strings 需要更新版本的 Python,但还有其他方法可以将数字格式化为不连接的字符串):

dic = {f"This is key number {i+1}": "This is a constant value for all keys" for i in range(4)}

如果你想坚持一些接近你开始的 for 循环,只需执行以下操作:

Dic = {}
for i in range(0,4):
    Dic[f"This is key number {i}"] = "This is a constant value for all keys"

您可以使用 dict 的 fromkeys() 方法:

Dic = dict.fromkeys(map("This is key number {}".format,range(4)),"constant")

print(Dic)
{'This is key number 0': 'constant', 
 'This is key number 1': 'constant', 
 'This is key number 2': 'constant', 
 'This is key number 3': 'constant'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM