我试图使用itertools.permutations()来返回字符串的所有排列,并仅返回作为一组单词成员的那些排列.
import itertools
def permutations_in_dict(string, words):
'''
Parameters
----------
string : {str}
words : {set}
Returns
-------
list : {list} of {str}
Example
-------
>>> permutations_in_dict('act', {'cat', 'rat', 'dog', 'act'})
['act', 'cat']
'''
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案在终端上运行良好,但不知何故无法通过测试用例...
return list(set([''.join(p) for p in itertools.permutations(string)]) & words)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我正在尝试确定在制作简单的REST API请求时,Python的urllib.urlopen()函数是否遗漏了HTTP Accept标头.
在Facebook的图形API似乎注意到是否存在头部与否:
GET /zuck HTTP/1.0
Host: graph.facebook.com
Accept: */*
Run Code Online (Sandbox Code Playgroud)
如果没有接受头,返回的内容类型的application/json; charset=UTF-8变text/javascript; charset=UTF-8.这可能是Facebook的REST API中的错误,或者它可能是对缺少的接受标头的合法响应.
我注意到默认情况下使用curl等命令行工具Accept: */*:
$ curl -v https://graph.facebook.com/zuck
> GET /zuck HTTP/1.1
> User-Agent: curl/7.30.0
> Host: graph.facebook.com
> Accept: */*
Run Code Online (Sandbox Code Playgroud)
同样,Python请求包也Accept: */*用作默认值:
def default_headers():
return CaseInsensitiveDict({
'User-Agent': default_user_agent(),
'Accept-Encoding': ', '.join(('gzip', 'deflate')),
'Accept': '*/*',
'Connection': 'keep-alive',
})
Run Code Online (Sandbox Code Playgroud)
我认为卷曲和请求添加默认值是有原因的,但我不确定是什么原因.
HTTP/1.1的RFC 2616说明了这 */* indicates …
所以,我在这里面临疑问.
我正在读"Cracking the coding Interview"一书.以下文字写在那里.
假设您有一个链表a1->a2....->an->b1->b2....bn,并且想要将其重新排列a1->b1->a2->b2->.....an->bn.你不知道链表的长度,但你知道的是它是一个偶数.
(这里两个链表长度相同)
对于p2所做的每一次移动,你可以有一个指针p1(快速指针)每两个元素移动一次.当p1命中链表的末尾时,p2将位于端点.然后,将p1移回前面并开始"编织"元素.在每次迭代时,p2选择一个元素并在p1之后插入它.
我不明白当p1到达链表的末尾时,p2将处于中点.如果n = 3(长度= 6),这就是我想象的方式.下面的每个步骤代表一次迭代.
1. a1 (p1, p2)->a2->a3->b1->b2->b3
2. a1->a2 (p2)->a3 (p1)->b1->b2->b3
3. a1->a2->a3 (p2)->b1->b2 (p1)->b3
4. Index out of bounds error because p2 now points to a node after b3.
Run Code Online (Sandbox Code Playgroud)
我错了吗?
我希望基类中的方法在同一个类中调用另一个方法而不是在继承的类中调用重写方法.我想打印下面的代码
B级:6
A类:9
可以这样做吗?
# Base class definition
class ClassA(object):
def __init__(self):
print("Initializing A")
# hoping that this function is called by this class's printFnX
def fnX(self, x):
return x**2
def printFnX(self, x):
print("ClassA:",self.fnX(x))
# Inherits from ClassA above
class ClassB(ClassA):
def __init__(self):
print("initizlizing B")
def fnX(self, x):
return 2*x
def printFnX(self, x):
print("ClassB:", self.fnX(x))
ClassA.printFnX(self,x)
bx = ClassB()
bx.printFnX(3)
Run Code Online (Sandbox Code Playgroud) 在阅读Guido 使用Python在2MB内存中对一百万个32位整数进行排序后,我发现了该heapq模块,但这个概念对我来说非常抽象.
一个原因是我完全不理解堆的概念,但我确实理解Guido如何使用它.
现在,除了他有点疯狂的例子,你会用什么heapq模块?
它必须始终与排序或最小值相关吗?它只是你使用的东西,因为它比其他方法更快?或者你可以做一些你不能没有的优雅事物吗?
我知道有很简单的方法可以生成唯一随机整数列表(例如random.sample(range(1, 100), 10)).
我想知道是否有一些更好的方法来生成一个独特的随机浮点列表,除了编写一个像一个范围的函数,但接受像这样的浮点数:
import random
def float_range(start, stop, step):
vals = []
i = 0
current_val = start
while current_val < stop:
vals.append(current_val)
i += 1
current_val = start + i * step
return vals
unique_floats = random.sample(float_range(0, 2, 0.2), 3)
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
题:
什么是Zephyr ASDL以及它如何与词法分析器和解析器生成器等其他编译器技术相关?
(如果你相当完整,我会很感激,但是当它变得技术性时,指向其他在线参考,因为我对编译器的大部分知识来自于使用yacc和flex,在C中编写一个简单的最大munch lexer,并且看起来起来在网上阅读东西)
问题背景:
我一直在阅读http://docs.python.org/devguide/compiler.html,我遇到了以下几行:
使用Zephyr抽象语法定义语言(ASDL)指定AST节点的规范.
我按照底部的引文找到:http: //www.cs.princeton.edu/research/techreps/TR-554-97.
我在文章中的第一次阅读相当混乱,我希望在再次尝试之前,我可以首先更好地理解ASDL的目的(在编译过程的背景下).
文学编程是一种开发软件的方法,其中文档首先出现,然后是编码.一个人编写代码片段的文档,然后编写代码片段的实现.软件源代码的视觉外观将是一个简单的文档,如word,其中包含代码段落.
我正在尝试将我工作的开发工具转换为仅使用文字编程,因为它为代码可读性和维护带来了巨大的优势.但是,由于缺乏工具,LP的使用在公司中受到限制.例如,编程识字的理想方法是使用单词标记编写段落,然后插入带有实现的子段.但我似乎无法找到VS200x执行LP的任何好工具.
理想情况下,这样的工具看起来就像Word 2007,但集成到IDE中.当编码器将光标设置在代码段落上时,它将提供所有功能,就像我们现在在IDE中一样.
什么是LP的好工具,特别是.NET和VS200x?
例如,如果我有一个列表
[1,4,2,3,5,4,5,6,7,8,1,3,4,5,9,10,11]
Run Code Online (Sandbox Code Playgroud)
该算法应返回[1,2,3,4,5,6,7,8,9,10,11].
澄清一下,最长的清单应该向前运行.我想知道什么是算法上有效的方法(最好不是O(n ^ 2))?
此外,我对一个不在python中的解决方案持开放态度,因为算法才是最重要的.
谢谢.
可能重复:
什么事,Doctype?
添加DOCTYPE是最佳实践 - HTML验证器希望看到它.从理论上讲,它通过声明使用哪种HTML风格使文档更好.换句话说,这是你应该经常做的事情.
也就是说,我没有看到任何浏览器似乎使用它的情况.我在各种浏览器中尝试了多种HTML,但是在添加DOCTYPE时,我无法找到文档呈现方式不同的单个示例.
有没有人知道DOCTYPE在浏览器中有任何实际影响的情况?
python ×7
algorithm ×4
.net ×1
arrays ×1
asdl ×1
curl ×1
definition ×1
doctype ×1
heap ×1
html ×1
http ×1
http-headers ×1
ide ×1
inheritance ×1
linked-list ×1
ms-word ×1
multiset ×1
numpy ×1
permutation ×1
random ×1
rest ×1
syntax ×1