【问题标题】:problem in dictionary python字典python中的问题
【发布时间】:2010-07-18 08:00:58
【问题描述】:

我制作了一个字典,然后将值和键拆分为列表,现在它看起来像这样:

keys = [(4,5),(5,6),(4,8)......so on].
values = [('west',1),('south',1).......]

然后我就这样制作了一本新字典,

final = dict((k,v[0]) for k,v in zip(keys, values))

当我执行 -print final - 输出是这种形式...{(4,5):west,(5,6):south,......so on}

现在我需要有键 (4,5) 的值...它可以是任何键..

q:2

win = gap.pop() - here gap is a stack
         print win      - the output is (1,1)
         return final.get(win) -

但是当我返回时,它给了我一个错误,最终是我用键和值列表创建的目录

错误是:'W'

【问题讨论】:

  • @Shilpa:你是 OP。
  • Shilpa,无需编辑和添加新问题,而是开始一个新问题。此外,复制/粘贴代码和错误消息可能更有帮助。否则事情会被遗漏,很难猜测。例如。错误消息“W”——肯定不止这些。
  • 哦上帝...我现在做的...当我发布类似的问题时,.,,这里的每个人都开始说你不要再发布类似的问题了...你可以编辑前一个……但现在你说别的……但无论如何……对不起……我会记住的……而且错误只是“w”…… ..这个 W 来了,因为 (1,1) 的值是西..所以只有 w 出来了...
  • @Shilpa:我看到你问了很多关于 python 的问题,每个问题都为你的应用程序提供了一个新的部分。说真的,这对你没有帮助。 在使用 Python 之前先学习它。 SO 不是为了学习一门语言,而是为了帮助解决特定问题。但是,如果您首先阅读 Python 教程并遵循一些代码示例,似乎您会获得最大的收益。
  • 对不起....我不会再犯这个错误了...我用 lil 代码发布了全新的问题...

标签: python dictionary


【解决方案1】:

为我工作:

>>> final = {(4,5):"West", (5,6): "East"}
>>> print final
{(4, 5): 'West', (5, 6): 'East'}
>>> final[(4,5)]
'West'

你可能想试试final.get((4,5))

或者发布更多代码,也许你可以用final 做一些花哨的事情。如果你没有返回值,你至少应该得到一个KeyError

>>> final[(7,8)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: (7, 8)

在这种情况下,您要么必须处理异常:

try:
    final[(7,8)]
except KeyError:
    print "Key not in dict."

或使用final.get((7,8), &lt;default value&gt;),如果未找到密钥,则返回&lt;default value&gt;(如果未指定默认值,则返回None)。


Read about dictionaries in the Python documentation.

【讨论】:

  • print final[(4,5)] 也给了我west。 OP的问题一定有什么遗漏。
  • Awesome....final.get((4,5)) 对我有用...谢谢但我还有 1 个与此相关的问题...我正在编辑问题... .plz 看到它并告诉我正确的做法......再一次......谢谢
  • @Shilpa:不客气,但您似乎没有正确说明您的问题。首先您说,final[(4,5)] 不会给您west,但我们可以向您展示它确实如此。稍后在评论中您说您收到(5,3) 的关键错误,但您从未在问题中提及这一点。请对您的问题具体,我们不想猜测
  • 实际上问题是我没有得到任何数字的结果。只有 final.get 给了我结果。我没看到,我用过 (5,3)..bt 现在离开它,这不是问题....我需要找到下一个错误的解决方案......为什么会这样?/跨度>
  • @Shilpa:您应该创建一个新问题并发布更完整的代码。您的代码片段太小,我们不得不猜测很多。
【解决方案2】:

为我工作:

>>> keys=[(4,5),(5,6)]
>>> values = ["west","south"]
>>> f=dict(zip(keys,values))
>>> f
{(4, 5): 'west', (5, 6): 'south'}
>>> f[(4,5)]
'west'

【讨论】:

  • KeyError: (5, 3) 这是我得到的
  • @Shilpa:那么,(5,3) 的键显然不在您的字典中。从您到目前为止发布的代码来看,您似乎拥有(a,b),其中a &lt; b,但5 大于3。如果你打印final,你看到一个键(5,3)吗?我打赌不是;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2021-07-24
  • 2019-10-13
相关资源
最近更新 更多