- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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
itemgetter
这样编写有什么充分的理由吗?而倒数第二个 ()
和最后一个不是 (1,)
?
如果我总是想返回给定键的元组/列表,是否有其他内置选项?
最佳答案
Is there some other built-in option if I always want to return a tuple/list given the keys?
只需使用理解式即可:
[d[k] for k in keys]
在上下文中:
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([]))
#[]
关于Python:为什么itemgetter的返回类型不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988776/
在实际情况下可能不是安排数据的最佳方式,但它是一个很好的例子: In [16]: import operator In [17]: DF=pd.DataFrame({'Val1':[[2013, 37
有没有办法使用 itemgetter 获取一组列的补码? 例如,您可以使用 获取列表的第一个、第三个和第五个元素 from operator import itemgetter f = itemget
operator.itemgetter()函数是这样工作的: >>> import operator >>> getseconditem = operator.itemgetter(1) >>> ls
正如屏幕名称所证明的那样,我是 Python 新手。我试图对元组列表进行排序,认为列表中的 (x,y) 对并遇到了问题。我的目标是主要按 x 变量按升序对元组列表进行排序,然后进行排序 我调查了关于
我有一个字典,其中包含人名和股票值(value),我想获取元组组成股票的名称和最大值(value)。这里有一个问题:一些股票值(value)不可用并以 'NaN' 形式插入,因此,我想过滤它们。 ma
from operator import itemgetter from itertools import takewhile xs = [ ('foo',1), ('bar',1), ('baz',
我有以下字典: inventory = {'apple':(3, 133), 'banana':(9, 407), 'pear':(17, 205), 'orange':(1, 91)} 我想根据元组
我有一个要排序的元组列表。元组包含字符串: connectionsList = [('C', 'B'), ('A', 'C'), ('D', 'B'), ('C','D')] 元组中的字符串将数值存储
我注意到 operator.itemgetter 对象没有定义 __eq__,因此它们的比较默认为检查身份(is)。 当两个 itemgetter 实例的初始化参数列表比较相等时,将它们定义为相等有什
如何将 itemgetter 与列表变量而不是整数一起使用?例如: from operator import itemgetter z = ['foo', 'bar','qux','zoo'] id
这是我的词典: a = [{"id":1,"data":{"age":16,"name":a}}, {"id":3,"data":{"age":35,"name":b}}, {"i
我有一本已转换为列表的字典,因此我可以按第一项排序。字典中的键是(数字的)字符串,值是列表中维护的整数。 字典转换的列表如下所示: [('228055', 1), ('228054', 1), ('2
我最近学会了使用ìtemgetter(i)在Python中获取多个列表中的第i个元素。例如: j_column=list(map(itemgetter(j), board[i+1:])) board[
我有一个正在阅读的文件,然后创建了我想要的嵌套列表,然后按 4 元素(邮政编码)排序 jk43:23 Marfield Lane:Plainview:NY:10023 axe99:315 W. 115
我有一个用 functools.cmp_to_key 包装的比较器函数,这样我就可以在调用 sorted() 时使用它。 问题是我已经在使用 itemgetter 作为 key 。 itemgette
我正在尝试根据元素的属性在列表中选择最常见的项目。 a1 = Myclass(name='a') a2 = Myclass(name='a') b1 = Myclass(name='b') l = [
Python 2.7.5 (default, Sep 12 2013, 12:43:04) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type
我刚开始学习 Python 时遇到过这个非常简单的代码无法正确处理: import operator; b=[(5,3),(1,3),(1,2),(2,-1),(4,9)] sorted(b,key=
我很好奇是否有任何迹象表明 operator.itemgetter(0) 或 lambda x:x[0] 哪个更好用,特别是在 sorted() 作为 key 关键字参数,因为这是首先想到的用途。是否
A question was asked here on SO ,几分钟前,关于根据值对字典键进行排序。 几天前我刚刚阅读了关于 operator.itemgetter 排序方法的信息,并决定尝试一下
我是一名优秀的程序员,十分优秀!