相关疑难解决方法(0)

在什么情况下应该在python中使用内置的"运算符"模块?

我说的是这个模块:http: //docs.python.org/library/operator.html

来自文章:

运算符模块导出一组在C中实现的函数,这些函数对应于Python的内部运算符.例如,operator.add(x,y)等价于表达式x + y.函数名称是用于特殊类方法的函数名称; 为方便起见,还提供了没有前导和尾随__的变体.

我不确定我理解这个模块的好处或目的.

python operators

42
推荐指数
4
解决办法
2万
查看次数

operator.itemgetter或lambda

我很好奇是否有任何关于哪个operator.itemgetter(0)或哪个lambda x:x[0]更好用的指示,特别是sorted()作为key关键字参数,因为这是首先考虑的用途.有任何已知的性能差异吗?是否有任何与PEP相关的偏好或指导?

python python-2.7 python-3.x

26
推荐指数
3
解决办法
5442
查看次数

如何仅对二维列表的第一列使用 min()

我有一个二维列表,其中每个条目都有一个时间戳(int)和第二个值,可以是 int、字符串或对象。

我使用 min() 函数来获取具有最低时间戳的条目:

a = [[2, "start C"],
     [6, 2484],
     [15, "finish C"]]

print(min(a))
Run Code Online (Sandbox Code Playgroud)

输出:

[2, 'start C']
Run Code Online (Sandbox Code Playgroud)

当存在相同的最低时间戳时, min() 将比较这些项目的第二列。

仅当第二列具有可比值时,此操作才有效:

[2, 'start C']
Run Code Online (Sandbox Code Playgroud)

输出:

[2, 'start B']
Run Code Online (Sandbox Code Playgroud)

如果第二列包含不同的数据类型,则会引发错误:

a = [[2, "start C"],
     [2, "start B"],
     [15, "finish C"]]

print(min(a))
Run Code Online (Sandbox Code Playgroud)

输出:

TypeError: '<' not supported between instances of 'int' and 'str'
Run Code Online (Sandbox Code Playgroud)

如何只检查第一列的最小值?当存在相同的时间戳时,它应该简单地返回遇到的第一个项目。

python max min

2
推荐指数
1
解决办法
1159
查看次数

标签 统计

python ×3

max ×1

min ×1

operators ×1

python-2.7 ×1

python-3.x ×1