【问题标题】:Questions on Dictionary Data关于字典数据的问题
【发布时间】:2015-01-15 03:27:57
【问题描述】:
myd = {"abc":11, "def":8, "ghi":10, "jkl":3, "mno":12, 
"pqr":9, "stu":11, "wvxyz":15}

我在这 3 个问题上需要帮助:

  1. 编写一个代码,打印项目和值,使值在 myd 中最小。

  2. 编写一个代码来打印项目和值,使值在 myd 中最大。

  3. 创建两个新字典myd1myd2,使myd1 包含值小于等于10 的项,myd2 包含其余项。

【问题讨论】:

  • 您需要什么帮助? Stack Overflow 不存在做你的功课。
  • 这些不是问题,这些是要求。你写它,如果你有问题发布这些。
  • 这里有一些提示:前 2 个有单线解决方案。第三,2行。看一下“min”和“max”函数、itemgetter 和列表推导。从长远来看,自学这些对你有好处。祝你好运。
  • 我只想明确地说,虽然我同意其他人在这里所说的话,但我非常感谢@lightalchemist 对此的回应。尊敬的先生或女士。
  • 这不是家庭作业,只是从书中学习额外的问题并且不知道如何开始这些。感谢@lightalchemist 的提示。抱歉,我并不是要命令任何人做任何事情。

标签: python dictionary


【解决方案1】:

这里有一些你可以使用的提示:

>>> myd = {"abc":11, "def":8, "ghi":10, "jkl":3, "mno":12, "pqr":9, "stu":11,   "wvxyz":15}
>>> myd_key = myd.keys()       # will give you list of keys
>>> myd_key
['jkl', 'stu', 'pqr', 'abc', 'mno', 'wvxyz', 'ghi', 'def']
>>> myd_value = myd.values()  # will give you list of values
>>> myd_value 
[3, 11, 9, 11, 12, 15, 10, 8]
>>> sorted(myd_value)              # sort the list
[3, 8, 9, 10, 11, 11, 12, 15]
>>> myd_key = sorted(myd_key,key = lambda x: myd[x])   #sort the key on value
>>> myd_key
['jkl', 'def', 'pqr', 'ghi', 'stu', 'abc', 'mno', 'wvxyz']
>>> print myd_key[0],myd[myd_key[0]]
jkl 3
>>> print myd_key[-1],myd[myd_key[-1]]
wvxyz 15

最后一次尝试

【讨论】:

  • 只是一个评论,尝试使用正确的语法,它会更好地表达你的观点。另外,如果你在暗示,在评论中暗示,答案是回答,而不是暗示。
【解决方案2】:

以下是函数:

def max_dict(_dict):
    temp = {y:x for x,y in _dict.iteritems()} #Reverse the dict
    return temp[max(_dict.values())] #Return the max using the built-in max function

def min_dict(_dict):
    temp = {y:x for x,y in _dict.iteritems()} #Reverse the dict
    return temp[min(_dict.values())] #Return the min using the built-in min function

def new_dicts(_dict):
    _dict1 = {item:value for item, value in _dict.iteritems() if value <= 10} #Dict comprehension
    _dict2 = {item:value for item, value in _dict.iteritems() if value > 10} #Dict comprehension
    return _dict1, _dict2

作为:

>>> myd = {"abc":11, "def":8, "ghi":10, "jkl":3, "mno":12, 
... "pqr":9, "stu":11, "wvxyz":15}
>>> max_dict(myd)
'wvxyz'
>>> min_dict(myd)
'jkl'
>>> new_dicts(myd)
({'jkl': 3, 'pqr': 9, 'ghi': 10, 'def': 8}, {'wvxyz': 15, 'stu': 11, 'abc': 11, 'mno': 12})
>>> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多