小编Mar*_*cin的帖子

我可以在Ruby中使用gsub和Hashes吗?

我想通过我的输入并用Ruby中的300对反义词替换单词.

在Python中,创建字典是一种有效的方法,比较使用replace.

在Ruby中,如果我gsub!逐行使用,它的效率是否低于使用哈希?如果我只有300对,它会有所作为吗?

body=ARGV.dup

body.gsub!("you ","he ")
body.gsub!("up","down ")
body.gsub!("in ","out ")
body.gsub!("like ","hate ")
body.gsub!("many ","few ")
body.gsub!("good ","awesome ")
body.gsub!("all ","none ")
Run Code Online (Sandbox Code Playgroud)

ruby hash gsub

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

为什么在"</ html>"之后放置的内容会出现在浏览器中?

我试图存储一些文本,我可能会在</html>文档的标记之后使用(就像我\end{document}在LaTeX中经常使用的那样),但浏览器仍会显示文本.

这是我的理解是,页面是由什么是之间定义<html></html>,那么为什么事情超出</html>获得的信息?

html browser tags xhtml quirks-mode

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

为什么方法这么慢?

好吧,我理解像C++这样的语言为什么调用类中定义的虚方法比调用非虚方法慢(你必须通过动态调度表来查找要调用的正确实现).

但是在Python中,如果我有:

list_of_sets = generate_a_list_containg_a_bunch_of_sets()
intersection_of_all = reduce(list_of_sets[0].intersection, list_of_sets)
Run Code Online (Sandbox Code Playgroud)

这是显着的(在我的实验中大约40%)慢于:

list_of_sets = generate_a_list_containg_a_bunch_of_sets()
intersection_of_all = reduce(set.intersection, list_of_sets)
Run Code Online (Sandbox Code Playgroud)

我没有得到的是为什么它应该这么慢,方法查找(我认为)会发生在reduce的调用上,所以不应该看看实际调用交集方法的reduce的内部再次(它只是重用相同的方法参考).

有人可以说明我的理解存在缺陷吗?

python function

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

使用python和lxml忽略xml中的unicode?

我想忽略我的xml中的unicode。我愿意以某种方式在输出处理中进行更改。

我的python:

import urllib2, os, zipfile 
from lxml import etree

doc = etree.XML(item)
docID = "-".join(doc.xpath('//publication-reference/document-id/*/text()'))
target = doc.xpath('//references-cited/citation/nplcit/*/text()')
#target = '-'.join(target).replace('\n-','')
print "docID:    {0}\nCitation: {1}\n".format(docID,target) 
outFile.write(str(docID) +"|"+ str(target) +"\n")
Run Code Online (Sandbox Code Playgroud)

创建以下内容的输出:

docID:    US-D0607176-S1-20100105
Citation: [u"\u201cThe birth of Lee Min Ho's donuts.\u201d Feb. 25, 2009. Jazzholic. Apr. 22, 2009 <http://www
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试重新添加,则'-'join(target).replace('\n-','')对于print和都会出现此错误outFile.write

Traceback (most recent call last):
  File "C:\Documents and Settings\mine\Desktop\test_lxml.py", line 77, in <module>
    print "docID:    {0}\nCitation: {1}\n".format(docID,target)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' …
Run Code Online (Sandbox Code Playgroud)

python xml unicode lxml python-unicode

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

python中的最佳返回类型策略

我正在为下一个问题寻找一种"其意图完成的方式"解决方案:

我有一个名为的类InputChecker,它接受一个输入文件,检查它的内容,如果一切正常,则将文件返回到下一个class(ExpofitAgent)以进行进一步的操作.

但是,如果文件不是应该的形式,则InputChecker生成一条错误消息,指出错误发现在文件的哪一行.

InputChecker 不会打印错误,它只会生成稍后打印的消息.

因为我在python中这样做,我的方法可以返回一个文件或一个字符串.如何在不需要添加额外标志的情况下检查文件是否正常?

python error-handling exception-handling exception

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

用于emacs而不是2.7的python3解释器

我是Fedora 17和Emacs的新手,无法弄清楚如何告诉我的emacs使用最新版本的python.

我找到了一些信息,我应该更改python-python-command变量或显示新解释器的路径,怎么做?

emacs fedora python-2.7 python-3.x

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

如何过滤列表

我正在写一个简单的函数来从列表中取出任何奇数,并返回一个只有偶数的列表.

def purify(numbers):
for i in numbers:
    if i%2!=0:
       numbers.remove(i)
return numbers    

print purify([4,5,5,4])
Run Code Online (Sandbox Code Playgroud)

当在上面应用时

它返回:[4,5,4]为什么第二个5被删除,因为它也证明了if?

我不太关注问题的不同方法,而是更多地了解为什么会发生这种情况.

谢谢,对不起,如果这是愚蠢的......乔

python

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

Python列表转换为整数

在测试代​​码时出现了一些错误 - 在数学运算之后,列表'缩小'到自己的最后一项

在Python 3.3解释器中它工作得很好......

a = [a + b for a, b in zip(a, b)]
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码添加一些列表项

a = [1, 2, 3]
b = [2, 3, 2]
Run Code Online (Sandbox Code Playgroud)

这很好,并返回

>>> a
[3, 5, 5]
>>> b
[2, 3, 2]
Run Code Online (Sandbox Code Playgroud)

然后我写了一个类来处理更多列表:

class Vector:

    def __init__(self, name = '', vector = []):
        self.__name = name
        self.__vector = vector


    def add_row_to_scalar_multiple(self, vector):
        self.__vector = [self.__vector + vector.__vector for self.__vector, vector.__vector in zip(self.__vector, vector.__vector)]


    def __str__(self):
        vec = ('{0} = {1}'.format(self.__name, self.__vector))
        formatted_vec = vec.replace(',', …
Run Code Online (Sandbox Code Playgroud)

python list python-3.x

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

为什么列表在python和Java中表现不同?

我正在学习脚本语言python.我非常了解Java.我试图将一些代码从Java翻译成python.但是它们表现不正常(或者我的理解可能完全错误)我在Java中有以下代码,我将无限期地向ArrayList添加元素.所以这会导致outofmemory错误,我期望:

import java.util.*;
public class Testing{
public static void main(String[] args){
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(5);
        list.add(4);
        for (int i=0;i<list.size();i++){
            list.add(5);
        }
}
}
Run Code Online (Sandbox Code Playgroud)

现在在python中翻译相同的代码:

lst = []
lst.append(5)
lst.append(4)
for i in range(len(lst)):
    lst.append(5)
print lst
Run Code Online (Sandbox Code Playgroud)

在这里我得到输出: [5, 4, 5, 5]

从我看到的,是不是作为forpython循环的引用传递的列表?

同样在这里,

>>> l=[1,2,3]
>>> for i in l[:]:
...    l.append(4)
...    print l
... 
[1, 2, 3, 4]
[1, 2, 3, 4, 4]
[1, 2, 3, 4, 4, 4]
Run Code Online (Sandbox Code Playgroud)

在循环内的每次迭代中for,我都在增加列表大小,所以迭代应该永远正确吗?

python java arrays for-loop list

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

将字符串(拆分)转换为列表?

我正在尝试将字符串转换为列表,并且作为新手不知道最简单的方法是什么.

拥有列表,例如:

strList = "[[1,2,3],[4,5,6]]"
Run Code Online (Sandbox Code Playgroud)

是否有任何python函数简单地拆分上面的字符串?我试图使用该方法,.split() 但它返回

>>> list("[[1,2,3],[4,5,6]]".split())
['[[1,2,3],[4,5,6]]']
Run Code Online (Sandbox Code Playgroud)

我想得到的是

result = [[1,2,3],[4,5,6]]
Run Code Online (Sandbox Code Playgroud)

所以它result[0]会返回[1,2,3]result[0][1]返回2

python

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