小编Dou*_* T.的帖子

Python扩展了一个空列表错误?

为什么python 2.5.2具有以下行为

>>>[2].extend([]) == [2]
False

>>> [2].extend([]) == None
True

$ python --version
Python 2.5.2
Run Code Online (Sandbox Code Playgroud)

我假设我在这里不理解某些东西,但直觉上我认为[2] .extend([])应该产生[2]

python list extend

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

何时char*对于严格的指针别名是安全的?

我一直在尝试理解严格的别名规则,因为它们适用于char指针.

这里说明:

始终假定char*可以引用任何对象的别名.

好的,在套接字代码的上下文中,我可以这样做:

struct SocketMsg
{
   int a;
   int b;
};

int main(int argc, char** argv)
{
   // Some code...
   SocketMsg msgToSend;
   msgToSend.a = 0;
   msgToSend.b = 1;
   send(socket, (char*)(&msgToSend), sizeof(msgToSend);
};
Run Code Online (Sandbox Code Playgroud)

但接下来是这个声明

相反的情况并非如此.将char*转换为除char*之外的任何类型的指针并取消引用它通常违反严格别名规则.

这是否意味着当我收回一个char数组时,当我知道消息的结构时,我无法重新解释转换为结构:

struct SocketMsgToRecv
{
    int a;
    int b;
};

int main()
{
    SocketMsgToRecv* pointerToMsg;
    char msgBuff[100];
    ...
    recv(socket, msgBuff, 100);
    // Ommiting make sure we have a complete message from the stream
    // but lets assume msgBuff[0]  has a complete msg, and lets interpret …
Run Code Online (Sandbox Code Playgroud)

c sockets strict-aliasing

23
推荐指数
2
解决办法
5693
查看次数

了解bigrams和trigrams的NLTK搭配评分

背景:

我试图比较一对单词,看看哪一对在美国英语中比另一对更"可能发生".我的计划是使用NLTK中的搭配设施对单词对进行评分,评分最高的对是最有可能的.

做法:

我使用NLTK在Python中编写了以下代码(为简洁起见,删除了几个步骤和导入):

bgm    = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)
scored = finder.score_ngrams( bgm.likelihood_ratio  )
print scored
Run Code Online (Sandbox Code Playgroud)

结果:

然后我用两个单词对检查结果,其中一个应该很可能共同发生,一个不应该("烤腰果"和"汽油腰果").我惊讶地看到这些单词配对得分相同:

[(('roasted', 'cashews'), 5.545177444479562)]
[(('gasoline', 'cashews'), 5.545177444479562)]
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我本以为"烤腰果"的得分高于"汽油腰果".

问题:

  1. 我误解了搭配的使用吗?
  2. 我的代码不正确吗?
  3. 我的假设是分数应该是不同的错误,如果是这样,为什么呢?

非常感谢您提供任何信息或帮助!

python nlp nltk

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

21
推荐指数
3
解决办法
7万
查看次数

目录的递归副本

在我的旧VPS上,我使用以下代码将目录中的文件和目录复制到用户提交表单后创建的新目录.

function copyr($source, $dest)
{
   // Simple copy for a file
   if (is_file($source)) {
      return copy($source, $dest);
   }

   // Make destination directory
   if (!is_dir($dest)) {
      mkdir($dest);
      $company = ($_POST['company']);
   }

   // Loop through the folder
   $dir = dir($source);
   while (false !== $entry = $dir->read()) {
      // Skip pointers
      if ($entry == '.' || $entry == '..') {
         continue;
      }

      // Deep copy directories
      if ($dest !== "$source/$entry") {
         copyr("$source/$entry", "$dest/$entry");
      }
   }

   // Clean up
   $dir->close();
   return true;
}

copyr('Template/MemberPages', …
Run Code Online (Sandbox Code Playgroud)

php copy dir

21
推荐指数
6
解决办法
4万
查看次数

如何最好地重载operator <> <=> =但只写一个或两个比较函数?

我有一个类型为std :: string的类.我想通过比较属性为类提供一些比较运算符函数,如<,>,==,<=和> =.

我的问题是:任何简单的方法或工具

(1)只写一个或两个函数,例如一个用于运算符<(和==),其他函数可以自动生成.

(2)甚至更简单,因为类比较取决于std::string其比较函数已经提供的类型属性.

c++ comparison operator-overloading

21
推荐指数
3
解决办法
4987
查看次数

程序员应该在一个文件中放多少个类?

在面向对象的语言中,您将类分组到单个文件中的指导原则是什么?你总是给每个班级一个单独的档案吗?你把紧密耦合的课程放在一起吗?您是否曾在一个文件中指定了几个接口实现?你是根据实现可能有多少行代码或者它对类的用户看起来"混乱"的方式来做的?或者用户是否愿意将所有东西放在一个地方?

language-agnostic oop class file

17
推荐指数
4
解决办法
8531
查看次数

如何从DWORD构造std :: string?

我有以下代码:

Tools::Logger.Log(string(GetLastError()), Error);
Run Code Online (Sandbox Code Playgroud)

GetLastError()返回一个DWORD数值,但构造函数std::string不接受a DWORD.

我能做什么?

c++ numeric stdstring

17
推荐指数
4
解决办法
3万
查看次数

关于使用模板类的C++动态转换

我有基类A,类B继承自A,类C是模板类,继承自A. class D继承自C.关系如下:

        A
       / \   
      B   C (template class)
           \
            D
Run Code Online (Sandbox Code Playgroud)

我可以使用D对象D1创建A对象O1,然后我想动态地将O1转换为类型C对象C1.但我发现它失败了.我的问题是为什么这个过程失败了?

然后我使用static_cast从D对象D1创建C类型对象C2,并且我检查C2具有来自D2的正确值.使用static_cast从D类型转换为C类型总是成功的吗?

谢谢!!!

c++ templates casting dynamic

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

像数组一样访问c ++队列元素

可以像数组一样访问队列元素吗?如果没有,那么类似于队列的容器可以吗?

c++ queue stl

15
推荐指数
2
解决办法
3万
查看次数