我想通过我的输入并用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) 我试图存储一些文本,我可能会在</html>文档的标记之后使用(就像我\end{document}在LaTeX中经常使用的那样),但浏览器仍会显示文本.
这是我的理解是,页面是由什么是之间定义<html>和</html>,那么为什么事情超出</html>获得的信息?
好吧,我理解像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的内部再次(它只是重用相同的方法参考).
有人可以说明我的理解存在缺陷吗?
我想忽略我的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) 我正在为下一个问题寻找一种"其意图完成的方式"解决方案:
我有一个名为的类InputChecker,它接受一个输入文件,检查它的内容,如果一切正常,则将文件返回到下一个class(ExpofitAgent)以进行进一步的操作.
但是,如果文件不是应该的形式,则InputChecker生成一条错误消息,指出错误发现在文件的哪一行.
InputChecker 不会打印错误,它只会生成稍后打印的消息.
因为我在python中这样做,我的方法可以返回一个文件或一个字符串.如何在不需要添加额外标志的情况下检查文件是否正常?
我是Fedora 17和Emacs的新手,无法弄清楚如何告诉我的emacs使用最新版本的python.
我找到了一些信息,我应该更改python-python-command变量或显示新解释器的路径,怎么做?
我正在写一个简单的函数来从列表中取出任何奇数,并返回一个只有偶数的列表.
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 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.我非常了解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,我都在增加列表大小,所以迭代应该永远正确吗?
我正在尝试将字符串转换为列表,并且作为新手不知道最简单的方法是什么.
拥有列表,例如:
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