首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当键是Python字典中的元组时

当键是Python字典中的元组时
EN

Stack Overflow用户
提问于 2014-02-17 15:46:29
回答 4查看 692关注 0票数 3

我很难理解这件事。我有一本字典,其中的键是由两个字符串组成的元组。我想用小写这个元组中的第一个字符串,这可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-17 15:53:11

因为元组是不可变的,所以您需要删除旧的元组并创建一个新的元组。这在Python 2和3中有效,它保留了原始的dict:

代码语言:javascript
运行
复制
>>> d = {('Foo', 0): 0, ('Bar', 0): 0}
>>> for (k, j), v in list(d.items()): # list key-value pairs for safe iteration
...     del d[k,j] # remove the old key (and value)
...     d[(k.lower(), j)] = v # set the new key-value pair
... 
>>> d
{('foo', 0): 0, ('bar', 0): 0}

注意,在Python2中,dict.items()返回一个列表副本,因此没有必要将它传递给list,但是为了与Python3完全兼容,我选择保留它。

您还可以使用一个提供给dict的生成器语句,并让旧的dict得到垃圾收集。这也与Python2.7、2.6和3兼容。

代码语言:javascript
运行
复制
>>> d = {('Foo', 0): 0, ('Bar', 0): 0}
>>> d = dict(((k.lower(), j), v) for (k, j), v in d.items())
>>> d
{('bar', 0): 0, ('foo', 0): 0}
票数 3
EN

Stack Overflow用户

发布于 2014-02-17 16:00:24

您可以使用dict理解来构建一个新的dict,并应用您的更改:

代码语言:javascript
运行
复制
d = { (a.lower(), b) : v for (a,b), v in d.items() }
票数 4
EN

Stack Overflow用户

发布于 2014-02-17 15:49:45

在将字符串放入元组之前,必须将字符串更改为小写。元组在创建之后是只读的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21833383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档