【问题标题】:Why isn't a tuple being set as the key for my dict? [duplicate]为什么不将元组设置为我的 dict 的键? [复制]
【发布时间】:2018-12-22 03:32:39
【问题描述】:

我正在尝试将整数元组设置为我的字典的键。以下是相关代码:

class Solution:       
def longestPalindrome(self, s):
    """
    :type s: str
    :rtype: str
    """
    paldict = {}
    stringlen = len(s)
    for i in range(len(s)):
        if self.isPalindrome(s[i]) == True:
            paldict[(i, i)] = True
        else:
            paldict[(i, i)] = False
    for key, value in paldict:
        print(key)
        print(value)

第二个 for 循环仅用于测试,因为编译器告诉我,当我尝试访问第二个元素时,int 类型不可下标,这对我来说很奇怪。这是一个错误,只有在类型不是元组时才会发生。打印出来后,我看到键实际上只是一个整数而不是元组。此外,该值不是 True 或 False,而是相同的整数。任何想法为什么?

【问题讨论】:

  • for key, value in paldict 不是您迭代键和值的方式。
  • 这样做的正确方法是什么?我原来的问题仍然存在,元组没有被设置为键。
  • "为什么不将元组设置为键?" - 你认为它没有被设置为 key 的事实表明你没有真正阅读和理解欺骗目标。
  • 有趣。知道为什么“for key in dict”会产生所需的元组,但“for key, value in dict”不会?那部分我没有完全从阅读副本中得到。
  • 我认为您必须执行“for key, value in dict.items() 才能获得正确的键值对列表。那么“for key, value in dict”究竟是什么?那么对 .items() 的调用呢?

标签: python dictionary tuples key


【解决方案1】:
for key, value in paldict.items():
    print(key)
    print(value)

你不见了.items()

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2018-08-08
    • 1970-01-01
    • 2011-01-13
    • 2021-02-16
    • 2014-03-06
    • 2011-02-15
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多