我正在编写一个处理大量字符串/文件的python程序.我的问题是,我将会收到一段相当短的文本,我将需要搜索相当广泛的单词/短语的实例.
我想我需要编译正则表达式作为在文本中匹配这些单词/短语的方法.但是,我担心的是,这需要花费很多时间.
我的问题是,重复编译正则表达式,然后搜索一小段文本来查找匹配的过程有多快?使用一些字符串方法会更好吗?
编辑:所以,我想我的问题的一个例子是:使用一个正则表达式进行编译和搜索的成本是多少,而不是说,在字符串中迭代"if"字,说5次?
我有一个defaultdict(列表)和其他普通字典
A = {1:["blah", "nire"], 2:["fooblah"], 3:["blahblah"]}
B = {1: "something" ,2:"somethingsomething"}
Run Code Online (Sandbox Code Playgroud)
现在让我说我有这样的事情
missing_value = "fill_this"
Run Code Online (Sandbox Code Playgroud)
现在,首先我想找到A中缺少B的键(如缺少3个),然后将这些键设置为值missing_value?什么是pythonic方法呢?谢谢
我有一个大型数据集(假设有10,000个变量,每个变量大约有1000个元素),我们可以把它想象成2D列表,类似于:
[[variable_1],
[variable_2],
............
[variable_n]
]
Run Code Online (Sandbox Code Playgroud)
我想从该数据中提取高度相关的变量对.我希望"高度相关"成为我可以选择的参数.
我不需要提取所有对,我不一定需要最相关的对.只要有一种有效的方法让我高度相关,我很高兴.
此外,如果变量不会出现在多个对中,那将会很好.虽然这可能不是至关重要的.
当然,有一种蛮力的方式来寻找这样的对,但对我来说它太慢了.
我已经google了一下,发现了一些关于这个问题的理论工作,但我找不到能够做到我想要的东西的包.我主要在python中工作,所以python中的一个包最有帮助,但是如果R中有一个包来做我正在寻找的东西,它会很棒.
有没有人知道在Python或R中执行上述操作的包?还是其他任何想法?
先感谢您
但是说真的,我正在使用ggplot2而且我相信我已经尝试alpha = .5在每个可以想象的地方坚持一个没有任何效果.
我想为此图中的点添加透明度,因为它们完全覆盖了箱图
g <- ggplot(data=ar1yX_wnZ, aes(factor(avp), lambda))
g <- g + geom_boxplot() + geom_jitter(aes(color=rho))
g + facet_grid(~ tau)
Run Code Online (Sandbox Code Playgroud)
我想坚持alpha = .5在geom_jitter会工作:
g <- ggplot(data=ar1yX_wnZ, aes(factor(avp), lambda))
g <- g + geom_boxplot() + geom_jitter(aes(color=rho), alpha = .5)
g + facet_grid(~ tau)
Run Code Online (Sandbox Code Playgroud)
但是它没有做任何事情,也没有aes()把它包装在或调用ggplot()或者ggplot(aes()).话虽这么说,并不是图表没有出现,或者产生错误,只是点数没有透明度.
这似乎是每个人都这样做的方式,所以我想知道是否有一些我缺少的R包.任何建议将不胜感激.作为一个注释,我使用R版本2.7,并已安装ggplot2与install.packages("ggplot2",dep = T)所以我会想到一切都在那里...
编辑:
有关更多信息/可重现的示例,这个非常简单的情况也不起作用:
a = rnorm(10000, 0, 1)
b = rnorm(10000, 0, 1)
test = as.data.frame(cbind(a,b))
g <-ggplot(data = test, aes(a, b))
g …Run Code Online (Sandbox Code Playgroud) 这是我的工作代码,我试图找到方法使其更快地找到有效的单词,我正在考虑为每个单词制作单独的字典列表,你会怎么想?
import random
import itertools
file_name='words.txt'
def load_words():
try:
f=open(file_name,'r')
str1=f.read()
f.close()
except:
print('Problem opening the file',file_name)
list1=[]
list1=str1.split()
return(list1)
def is_valid(str1,list1):
valid=False
if str1 in list1:
valid=True
return valid
def generate(words,letters):
answers=[]
for length in range(2,len(letters)+1):
for x in itertools.permutations(letters,length):
word=''
for let in x:
word+=let
if is_valid(word.upper(),words):
answers.append(word)
print(word)
print(answers)
def main():
words=load_words()
letters = input('Enter your letters')
answers = generate(words,letters)
main()
Run Code Online (Sandbox Code Playgroud) 我有一个返回的函数,[Int]我想取列表的总和.但是,虽然每个单独的元素都小于maxBound::Int,但总和肯定更大.
一个(人为的)例子:
ghci> sum ([1..10000000] :: [Int])
-2004260032
Run Code Online (Sandbox Code Playgroud)
有没有办法强迫总和积累成一个Integer而不是一个Int?我在想这个错吗?
是否可以用SQL引用SQL语句中的所有值?例如:
这是一本名为books的简单表:
id | title
1 | Some book name
2 | Second book name
Run Code Online (Sandbox Code Playgroud)
写这样的语句是否可以:
SELECT * FROM books WHERE id = '1'
Run Code Online (Sandbox Code Playgroud)
我已经在SQL Server 2008和MySQL 5中测试了该查询并且它运行良好,但我很好奇是否有任何性能问题,因为ID字段是acctualy整数.
第二个问题是写这样的声明是可以的:
SELECT * FROM books WHERE id = N'1'
Run Code Online (Sandbox Code Playgroud)
在SQL Server中使用N前缀用于UTF-8字段,但我已经在SQL服务器和MySQL中测试了它,两者都运行正常.我不知道SQLite是否支持N前缀,因为我没有测试过.
我之所以这样问是因为我正在构建可与流行的SQL数据库(SQL Server,MySQL,SQLite和MS Access)一起使用的数据库类,所以在执行选择,插入或更新数据时我不必担心关于字段数据类型.我总是可以用N'Some值附加值,但我很好奇这是否正确并且是否有任何性能问题?
我就在这种情况下。我有两个不同对象类型的列表,它们都有一个共享的属性值。假设是这样invoiceID。
在 SQL 中,如果我想获取所有记录,table_A因为它的列invoiceID值与任何invoiceIdinside匹配table_B,我可能会这样做。
Select *
From table_A
where invoiceID in ( select invoiceId from table_B)
Run Code Online (Sandbox Code Playgroud)
对于这种情况,C# 中等效的 LINQ 或 Lambda 表达式是什么?
我习惯于使用单个值搜索列表中的元素,例如:
var result = list_A.Where(x=>x.InvoiceID = someInvoiceID)
Run Code Online (Sandbox Code Playgroud)
或者.contains()相反。
然而,这只能涵盖单个invoiceID值。
invoiceID我想,我可以为每个运行循环list_B,然后将结果存储在另一个列表中,但我只是想知道是否有更好的方法来做到这一点?
我正试图在我正在编写的一些代码中达到100%的测试覆盖率.但是,下面的代码块给了我麻烦.
try:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^localized_recurrence\.duration_field\.DurationField"])
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
上面的代码是我测试模块的一部分.我需要在ImportError分支后面创建一个测试(不修改上面的代码).
我怎样才能以编程方式导致ImportError发生,而只在我的测试中编写代码?
我正在尝试Eq为一个新类型编写一个实例EitherT:
newtype EitherT e m a = EitherT { runEitherT :: m (Either e a) }
Run Code Online (Sandbox Code Playgroud)
我假设以下Eq实例可行:
instance (Eq e, Eq a, Eq m) => Eq (EitherT e m a) where
a == b = (runEitherT a) == (runEitherT b)
Run Code Online (Sandbox Code Playgroud)
但是,我看到一个错误:
Expected kind '* -> *', but 'm' has kind '*'
Run Code Online (Sandbox Code Playgroud)
我从那个错误中读到的是,我的类型类约束( ... Eq m) => ...让编译器误以为我认为m是善意的*,当我的newtype声明EitherT期望它是善良的时候* -> *.
我想知道我需要做什么,声明我想要一个Eq更高的kinded类型的实例m来实现 …
python ×5
haskell ×2
r ×2
algorithm ×1
alpha ×1
c# ×1
database ×1
ggplot2 ×1
lambda ×1
mysql ×1
performance ×1
permutation ×1
regex ×1
sql ×1
sql-server ×1
t-sql ×1
unit-testing ×1