小编Pio*_*icz的帖子

如何在Python中找到unicode字符的数量/名称?

在Python中:

>>>"\N{BLACK SPADE SUIT}"
>>>'?'
>>>"\u2660"
>>>'?'
Run Code Online (Sandbox Code Playgroud)

现在,假设我有一个我不知道名字或号码的角色.是否有Python函数提供如下信息:

>>>wanted_function('?')
>>>["BLACK SPADE SUIT", "u2660"]
Run Code Online (Sandbox Code Playgroud)

python unicode python-3.x

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

在进行浮动分割时,在进行双击和后退时是否有任何准确度增益?

两个以下有什么区别?

float f1 = some_number;
float f2 = some_near_zero_number;
float result;

result = f1 / f2;
Run Code Online (Sandbox Code Playgroud)

和:

float f1 = some_number;
float f2 = some_near_zero_number;
float result;

result = (double)f1 / (double)f2;
Run Code Online (Sandbox Code Playgroud)

我对非常小的f2值特别感兴趣,这些值在浮点运算时可能产生+无穷大.是否有任何准确性?

使用这种演员表的一些实用指南也会很好.

c floating-point floating-accuracy ieee-754

34
推荐指数
2
解决办法
1493
查看次数

用Python确定JPG质量(PIL)

我正在使用Python中的PIL库,我想知道如何确定给定JPG图像的质量.我尝试打开JPG图像做一些事情,并以原始质量再次保存.Image.save让我确定所需的质量:

im.save(name, quality = x)  
Run Code Online (Sandbox Code Playgroud)

但我看不出任何提取原始的方法.现在我只是猜测并尝试通过对'质量'参数进行二进制搜索来获得与输入大小相同的输出文件,但这是不可接受的长期解决方案:)
我也尝试使用:Image.info但我的大多数图像在那里没有任何有用的信息(例如:'adobe','icc_profile','exif','adobe_transform')
帮助!

python jpeg image

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

无论如何都要对这类数据进行优化排序?

我正在排序整数键的数组.

有关数据的信息:

  • 数组长度为1176个元素
  • 钥匙在750 000至135 000 000之间; 0也是可能的
  • 有很多重复项,在每个数组中只有48到100个不同的键,但是不可能预测哪些值会超出整个范围.
  • 有很多长的排序子序列,大多数数组由33到80个排序的子序列组成
  • 最小的元素是0; 0的数量是可预测的并且在非常窄的范围内,每个阵列大约150个

到目前为止我尝试了什么:

  1. stdlib.h qsort ;

    这很慢,现在我的函数在每次执行的排序上花费0.6秒,stdlib.h qsort是1.0s; 这与std :: sort具有相同的性能

  2. 蒂姆索特 ;

    我试过这个:https://github.com/swenson/sort和这个:http://code.google.com/p/timsort/source/browse/trunk/timSort.c?specs = snn17&r = 17 ; 两者都明显慢于stdlib qsort

  3. http://www.ucw.cz/libucw/ ;

    到目前为止,他们对快速排序和插入排序的组合对我的数据来说是最快的; 我尝试了各种设置和pivot作为中间元素(不是3的中位数)和插入排序从28个元素子数组开始(默认情况下不是8)提供最佳性能

  4. 贝壳排序 ;

    本文中的差距很简单:http://en.wikipedia.org/wiki/Shellsort ; 它很不错,虽然比stdlib qsort慢


我的想法是qsort做了很多交换和废弃(即反向)排序的子序列,所以应该有一些方法通过利用数据的结构来改进它,不幸的是我的所有尝试到目前为止都失败了.
如果你很好奇那是什么类型的数据,那些是在已经在前面板上排序的各种板上评估的扑克牌组(这是排序后的子序列来自哪里).

该功能在C.我使用Visual Studio 2010.任何想法?

示例数据:http://pastebin.com/kKUdnU3N
示例完整执行(1176种):https://dl.dropbox.com/u/86311885/out.zip

c sorting algorithm

14
推荐指数
2
解决办法
891
查看次数

捕获MinGW编译文件时,Very Sleepy看不到函数名称

我是新手,所以可能会遗漏一些基本的东西.我使用gcc 4.8(MinGW)和-g选项编译我的C程序.

然后我运行它并使用Very Sleepy捕获它.这一切都有效,但Sleepy的输出看起来像这样:

memcpy             0.98 0.98 7.65 7.65  msvcrt unknown 0
[00000000004038FE] 0.77 0.77 6.02 6.02  a              0
memset             0.63 0.63 4.92 4.93  msvcrt unknown 0
[0000000000404549] 0.42 0.42 3.29 3.29  a              0
[000000000040282A] 0.35 0.35 2.73 2.73  a              0
[0000000000404600] 0.25 0.25 1.99 1.99  a              0
....
etc.
Run Code Online (Sandbox Code Playgroud)

(我的应用程序叫做a.exe)
所以Sleepy看不到函数名,我怎么需要编译/运行才能使它工作?困倦的网站给出:

支持GCC/mingw.您现在可以使用嵌入的DWARF2数据分析可执行文件,它应该可以工作.此处不需要特殊选项,只需使用"-g"进行编译即可确保符号存在.您可能还希望使用"-fno-omit-frame-pointer"来确保正确的callstack,尽管Sleepy通常可以以任何方式工作.您不需要使用"-pg"或任何垃圾.它甚至可以在Microsoft DLL之间将正确的堆栈转换为GCC堆栈,这比你想象的要难.

但就我而言,这还不够.

windows gcc profiling verysleepy

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

使用数组限制?

有没有办法告诉C99编译器我要访问给定数组的唯一方法是使用myarray [index]?说这样的话:

int heavy_calcualtions(float* restrict range1, float* restrict range2)
{
    float __I promise I won't alias this__ tmpvalues[1000] = {0};

    ....
    heavy calculations using range1, range2 and tmpvalues;
    ....
}
Run Code Online (Sandbox Code Playgroud)

通过使用restrict我承诺我不会为range1和range2设置别名但是我如何为我的函数内部声明的数组做同样的事情?

c optimization c99 restrict restrict-qualifier

11
推荐指数
2
解决办法
1890
查看次数

查找唯一(仅发生一次)元素haskell

我需要一个函数,它接受一个列表并返回唯一元素(如果存在)或[]如果它不存在.如果存在许多独特元素,则应该返回第一个元素(不浪费时间去寻找其他元素).另外我知道列表中的所有元素都来自(小而且已知)集A.例如,这个函数为Ints做了工作:

unique :: Ord a => [a] -> [a]
unique li = first $ filter ((==1).length) ((group.sort) li)
    where first [] = []
          first (x:xs) = x

ghci> unique [3,5,6,8,3,9,3,5,6,9,3,5,6,9,1,5,6,8,9,5,6,8,9]
ghci> [1]
Run Code Online (Sandbox Code Playgroud)

然而,这不够好,因为它涉及排序(n log n),而它可以在线性时间内完成(因为A很小).另外,它需要列表元素的类型为Ord,而所有应该需要的是Eq.如果比较量尽可能小(例如,如果我们遍历列表并且遇到元素el两次,我们不测试后续元素与el的相等性)也会很好

这就是为什么例如:计算列表中的唯一元素并不能解决问题 - 所有答案都涉及排序或遍历整个列表以查找所有元素的计数.

问题是:如何在Haskell中正确有效地完成它?

algorithm haskell functional-programming

8
推荐指数
2
解决办法
2076
查看次数

GHCI在Windows上不那么懒惰?

在Windows上键入以下GHCI:

foldl (+) 0 $ take 100000000 $ map sqrt [1..]
Run Code Online (Sandbox Code Playgroud)

得到:

<interactive>: out of memory
Run Code Online (Sandbox Code Playgroud)

在编译(使用GHC)并运行此程序时:

main = do
    let score = foldl (+) 0 $ take 100000000 $ map sqrt [1..]
    putStrLn $ show score
Run Code Online (Sandbox Code Playgroud)

打印预期答案没有内存错误.

这种行为有原因吗?在我看来,像Haskell的懒惰应该防止这一个班轮崩溃.

haskell lazy-evaluation ghci

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

在Windows上新的Python期货模块只是我或者是严重错误的

我在Windows XP上,我遇到了新的Python 3.2期货模块的问题.好像我无法让ProcessPoolExecutor工作.会话示例:

Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.  

>>> from concurrent import futures  
>>> executor = futures.ProcessPoolExecutor()  
>>> def pio(x):  
...     print("I AM HERE")  
...     return True  
...  
>>> fut = executor.submit(pio, 5)  
>>> Process Process-1:  
Traceback (most recent call last):  
File "C:\Python32\lib\multiprocessing\process.py", line 259, in _bootstrap  
  self.run()  
File "C:\Python32\lib\multiprocessing\process.py", line 114, in run  
  self._target(*self._args, **self._kwargs)  
File "C:\Python32\lib\concurrent\futures\process.py", line 133, in _process_worker …
Run Code Online (Sandbox Code Playgroud)

python future executor concurrent.futures

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

在Python中从文件中读取n行(但不是全部)

迭代文件时如何从文件中读取 n 行而不是仅读取一行?我有一个具有明确结构的文件,我想做这样的事情:

for line1, line2, line3 in file:
    do_something(line1)
    do_something_different(line2)
    do_something_else(line3)
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

ValueError:太多值无法解压

现在我正在这样做:

for line in file:
    do_someting(line)
    newline = file.readline()
    do_something_else(newline)
    newline = file.readline()
    do_something_different(newline)
... etc.
Run Code Online (Sandbox Code Playgroud)

这很糟糕,因为我正在编写无休止的“ newline = file.readline()”,这使代码变得混乱。有什么聪明的方法可以做到这一点吗?(我真的想避免一次读取整个文件,因为它很大)

python file

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