小编Sim*_*mme的帖子

Python 3中不同的对象大小True和False

__sizeof__在不同的Python对象上尝试使用魔术方法(特别是)我偶然发现了以下行为:

Python 2.7

>>> False.__sizeof__()
24
>>> True.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)

Python 3.x

>>> False.__sizeof__()
24
>>> True.__sizeof__()
28
Run Code Online (Sandbox Code Playgroud)

Python 3中改变了什么使得大小True超过了False

python cpython python-2.7 python-3.x python-internals

67
推荐指数
4
解决办法
2884
查看次数

制表:小数点对齐和带后缀的自定义浮点精度

我正在使用tabulatePython 2.7 来漂亮地打印表格。它确实对齐可以通过小数点很好地转换为数字的任何内容,并且还支持截断小数点后的数字。但是,在处理包含后缀(例如37.58 MiB)的数字字符串时,我需要这两种功能。

import tabulate

fields = [['37.58 MiB', '42.2323 KiB'],
          ['0.12893 GiB', '8.012 MiB']]

print tabulate.tabulate(fields)
Run Code Online (Sandbox Code Playgroud)

产生输出:

----------- -----------
37.58 MiB 42.2323 KiB
0.12893 GiB 8.012 MiB
----------- -----------

我想要的是这样的:

----------- -----------
37.58 MiB 42.23 KiB
 0.12 GiB 8.01 MiB
----------- -----------

tabulate能力实现这个目标吗?

python text-alignment python-2.7

5
推荐指数
0
解决办法
2286
查看次数

nroff/groff 无法正确转换 utf-8 编码文件

我有一个 utf-8 编码的 roff 文件,我想将其转换为联机帮助页

$ nroff -mandoc inittab.5
Run Code Online (Sandbox Code Playgroud)

但是,[äöüÄÖÜ], eg 中的字符没有正确显示,因为似乎 nroff 假定采用 ISO 8859-1 编码(我得到的是[äöüÃÃÃ] 代替。nroff使用-Tutf8标志调用不会改变行为,并且语言环境环境变量(我假设正确)设置为

LANG=de_DE.utf8
LC_CTYPE="de_DE.utf8"
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

由于nroff只是一个包装脚本并最终调用groff我检查了对后者的调用,即:

$ groff -Tutf8 -mandoc inittab.5
Run Code Online (Sandbox Code Playgroud)

比较 src 文件和输出文件中字符的字节编码,我得到以下转换:

character  src file  output file
---------  --------  -----------
ä          C3 A4     C3 83 C2 A4
ö          C3 B6     C3 83 C2 B6
ü          C3 BC     C3 83 …
Run Code Online (Sandbox Code Playgroud)

linux encoding utf-8

4
推荐指数
1
解决办法
2272
查看次数

如何将多维数组重塑为二维图像?

我正在研究一个形状如下的数组

(64, 1, 64, 64)
Run Code Online (Sandbox Code Playgroud)

这实际上是一张灰度图像,被分成 64 个块,每个块的大小为 64*64px。

现在我需要将其重建为 512*512px 的图像。

我尝试过使用

np.reshape(arr, (512, 512))
Run Code Online (Sandbox Code Playgroud)

但当然,最终的图像并不符合预期。

我该如何解决这个问题?

python numpy multidimensional-array reshape python-3.x

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

运算符在Haskell中的阴影

我想使用<|>运算符,Text.Parsec但我也导入Control.Applicative也包含<|>运算符.假设我不想使用丑陋的合格导入,我如何确保前一个操作符影响后者?

haskell parsec

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

Python 中 substr 和 strpos 的 PHP 等价物

我尝试将此php函数转换为Python

function trouveunebrique($contenu, $debut, $fin) {
  $debutpos = strpos($contenu, $debut);
  $finpos = strpos($contenu, $fin, $debutpos);
  if ($finpos == 0) {
    $finpos = strlen($contenu);
  }
  $nbdebut = strlen($debut);
  if ($debutpos > 0) {
    $trouveunebrique = substr($contenu, ($debutpos + $nbdebut), ($finpos - $debutpos - $nbdebut));
  } 
  else {
    $trouveunebrique = "";
  }

  return (trim($trouveunebrique));
}
Run Code Online (Sandbox Code Playgroud)

在这里搜索但找不到解决方案。我也试过这个:

   def trouveunebrique(contenu, debut, fin)
        debutpos = haystack.find(contenu, debut)
        finpos = haystack.find(contenu, fin)
        if (finpos == 0)
            finpos = …
Run Code Online (Sandbox Code Playgroud)

php python substring strpos python-2.7

0
推荐指数
1
解决办法
2017
查看次数