我从汇编中记得整数除法指令同时产生商和余数.因此,在python中,内置的divmod()函数比使用%和//运算符更好地表现性能(假设当然需要商和余数)?
q, r = divmod(n, d)
q, r = (n // d, n % d)
Run Code Online (Sandbox Code Playgroud) 我正在查看关于divmod的文档.表示方法之间的差别的表的一部分div,divmod,modulo,和remainder显示如下:

为什么要13.div(-4)舍入-4而不是-3?Ruby中是否有任何规则或惯例来舍入负数?如果是这样,为什么以下代码没有四舍五入?
-3.25.round() #3
Run Code Online (Sandbox Code Playgroud) 除了divmod作为许多芯片组的本地指令外,在以多个不同面额细分数字时,它也更容易上手
(例如毫秒 - >日期时间转换,或美分 - >硬币面额转换).
那么是否有一个divmod同时返回除法结果和余数的结果?
有人可以向我解释这段代码吗?我明白它的作用,但我不明白它是如何工作的。
# >n 0 d
[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]
# >0 n d-n%d n%d n/d
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的pandas数据框:
P-101 P-103 P-104 P-107 P-114 P-120
P 2415 2535 3345 5650 2805 6210
S 0 45 3105 1165 0 0
D 0 690 690 570 255 830
Run Code Online (Sandbox Code Playgroud)
我想对divmod(value, 60)每个单元格应用a ,然后将结果格式化为[quotient]h[remainder]m,如下所示:5h30m
我试过了:
df.values.apply(lambda x: divmod(x,60))
Run Code Online (Sandbox Code Playgroud)
但那抛出了一个 AttributeError
我如何申请divmod每一个价值?
我有两个数组:
a = [7, 1, 65, 4, 13, 97]
b = []
Run Code Online (Sandbox Code Playgroud)
我试图通过以下代码将每个a元素的 #divmod 返回值附加到 中:b
b << a.map(&4.method(:divmod))
Run Code Online (Sandbox Code Playgroud)
我期待的结果是:
b = [[1, 3], [0, 1], [16, 1], [1, 0], [3, 1], [24, 1]]
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
b = [[[0, 4], [4, 0], [0, 4], [1, 0], [0, 4], [0, 4]]]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么。谁能解释一下我不明白的地方?
(我必须使用&:,因为我需要使用此代码作为方法块参数。)