Python itemgetter
不返回长度为0或1的元组.例如:
from operator import itemgetter
def get_something(keys):
d = {
"a": 1,
"b": 2,
"c": 3
}
return itemgetter(*keys)(d)
print(type(get_something(["a", "b"])))
# <class 'tuple'>
print(type(get_something(["a"])))
# <class 'int'>
print(type(get_something([])))
# TypeError: itemgetter expected 1 arguments, got 0
Run Code Online (Sandbox Code Playgroud)
有这么好的理由itemgetter
吗?而不是(1,)
第二个()
和最后一个?
如果我总是希望返回给定键的元组/列表,是否还有其他内置选项?
如果我总是希望返回给定键的元组/列表,是否还有其他内置选项?
只需使用一种理解:
[d[k] for k in keys]
Run Code Online (Sandbox Code Playgroud)
在上下文中:
from operator import itemgetter
def get_something(keys):
d = {
"a": 1,
"b": 2,
"c": 3
}
return [d[k] for k in keys]
print(get_something(["a", "b"]))
#[1, 2]
print(get_something(["a"]))
#[1]
print(get_something([]))
#[]
Run Code Online (Sandbox Code Playgroud)