选择“其他值”的通用方法

2024-10-01 15:44:48 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个只包含两个值的dict:

foo = {'bar':someThing, 'foobar':someThingElse}

我在函数fookey中给出,它可以是barfoobar

有没有一种通用的方法来选择其他元素?此函数应该使用$foo$只包含两个元素的知识。你知道吗

硬编码方式是

def funnyStuff(foo, key):
    if key == 'bar':
        myKey = 'foobar'
    if key == 'foobar':
        myKey = 'bar'
    return foo[myKey]

Tags: 方法key函数元素iffoodefbar
3条回答

你可以使用列表理解:

def funnyStuff(foo, key):
    return foo[[x for x in foo if x != key][0]]

(仅python2,当不完全有2个键/值对时中断)

foo.values()[not foo.keys().index(key)]

只有两个要素?那你就不需要dict。你知道吗

foo = {'bar':'someThing', 'foobar':'someThingElse'}

def selectOther(data, key):
  # structure unpacking is almost like pattern matching!
  [(k1, v1), (k2, v2)] = data.items()
  if k1 == key:
    return v2
  elif k2 == key:
    return v1
  else:
    raise KeyError("Your %r is not among data keys!" % key)

相关问题 更多 >

    热门问题