小编Sil*_*ost的帖子

Python - 多个列表的交叉?

我正在玩python并且能够得到两个列表的交集:

result = set(a).intersection(b)
Run Code Online (Sandbox Code Playgroud)

现在,如果d是包含ab第三个元素的列表c,是否有内置函数用于查找内部所有三个列表的交集d?所以,例如,

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

那么结果应该是

[3,4]
Run Code Online (Sandbox Code Playgroud)

python intersection list set

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

在python中使用字符串+密钥计算SHA哈希

亚马逊产品API现在需要签名,我正在尝试生成用于Python的每个请求.

我挂起的步骤是这一步:

"使用SHA256哈希算法使用上面的字符串和我们的"虚拟"秘密访问密钥计算符合RFC 2104的HMAC:1234567890.有关此步骤的更多信息,请参阅编程语言的文档和代码示例.

给定一个字符串和一个密钥(在本例中为1234567890),如何使用Python计算此哈希值?

-----------更新-------------

使用HMAC.new的第一个解决方案看起来是正确的,但是我得到的结果与它们不同.

http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html

根据Amazon的示例,当您散列密钥1234567890和以下字符串时

GET
webservices.amazon.com
/onca/xml
AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=I
temLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReview
s&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&
Version=2009-01-06
Run Code Online (Sandbox Code Playgroud)

你应该得到以下签名: 'Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg='

我得到这个: '411a59403c9f58b4a434c9c6a14ef6e363acc1d1bb2c6faf9adc30e20898c83b'

python hash sha256

48
推荐指数
4
解决办法
7万
查看次数

如何将pprint模块的输出发送到日志文件

我有以下代码:

logFile=open('c:\\temp\\mylogfile'+'.txt', 'w')
pprint.pprint(dataobject)
Run Code Online (Sandbox Code Playgroud)

如何以漂亮的打印格式将dataobject的内容发送到日志文件?

python logging

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

当你开始学习Python时,你希望你知道什么?

我已经决定学习Python 3.对于那些之前已经有过的东西,你发现什么是最有用的,希望你早点知道?

python

47
推荐指数
11
解决办法
6517
查看次数

47
推荐指数
4
解决办法
16万
查看次数

Python中一组列表的所有可能排列

在Python中,我有一个n列表的列表,每个列表都有可变数量的元素.如何创建包含所有可能排列的单个列表:

例如

[ [ a, b, c], [d], [e, f] ]
Run Code Online (Sandbox Code Playgroud)

我想要

[ [a, d, e] , [a, d, f], [b, d, e], [b, d, f], [c, d, e], [c, d, f] ]
Run Code Online (Sandbox Code Playgroud)

注意我事先不知道n.我认为itertools.product是正确的方法,但它要求我提前知道参数的数量

python list permutation

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

什么?=正则表达式中的意思?

我可以知道?=正则表达式中的含义吗?例如,它在这个表达式中的意义是什么:

(?=.*\d).
Run Code Online (Sandbox Code Playgroud)

regex

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

我什么时候应该使用Map而不是For Loop?

这与以下内容有关:(在Python代码中)

for i in object:
     doSomething(i)
Run Code Online (Sandbox Code Playgroud)

map(doSomething, object)
Run Code Online (Sandbox Code Playgroud)

两者都很容易理解,而且很短,但速度有差异吗?现在,如果doSomething有一个返回值,我们需要检查它是否会从map中返回一个列表,而在for循环中我们可以创建自己的列表或一次检查一个.

for i in object:
     returnValue = doSomething(i)
     doSomethingWithReturnValue(returnValue)
Run Code Online (Sandbox Code Playgroud)

returnValue = map(doSomething, object)
map(doSomethingWithReturnValue, returnValue)
Run Code Online (Sandbox Code Playgroud)

现在,我觉得两者有点分歧.两个doSomethingWithReturnValue函数可能会有所不同,因为如果我们在循环中检查它们,或者如果在最后一次检查它们会产生不同的结果.此外,似乎for循环总是有效,也许更慢,地图只能在某些情况下工作.当然,我们可以做出扭曲来使其中任何一种工作,但重点是避免这种类型的工作.

我正在寻找的是这样一种情况,即与性能,可读性,可维护性或实施速度方面的循环相比,映射功能真正发挥作用.如果答案确实没有太大差异,那么我想知道在实践中人们何时使用其中一个或者它是否真的完全随意并且根据您的机构根据编码标准设置.

谢谢!

python for-loop

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

是否可以同时为dict对象中的多个键分配相同的值?

在Python中,我需要一个字典对象,如下所示:

{'a': 10, 'b': 20, 'c': 10, 'd': 10, 'e': 20}
Run Code Online (Sandbox Code Playgroud)

我已经能够通过组合dict.update()和如下dict.fromkeys()功能成功地获得这个:

myDict = {}
myDict.update(dict.fromkeys(['a', 'b', 'c'], 10))
myDict.update(dict.fromkeys(['b', 'e'], 20))
Run Code Online (Sandbox Code Playgroud)

但是,因为代码是为有时需要添加键/值的新手用户编写的,所以我更喜欢简单的简单(Perl-like)语法,例如:

myDict = {}
myDict['a', 'c', 'd'] = 10
myDict['b', 'e'] = 20
Run Code Online (Sandbox Code Playgroud)

然而,这给了我:

myDict = {('a', 'c', 'd'): 10, ('b', 'e'): 20}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以进一步简化我的第一个例子(使用dict.update()dict.fromkeys()),并获取我正在寻找的dict对象?

或者,或者,如果我在第二个例子中有一个带有元组的字典,那么我是否可以轻松地进行查找,例如myDict['c']myDict.get('c')获取值10?

python syntax dictionary

44
推荐指数
5
解决办法
6万
查看次数

跳过"返回无"可以吗?

我不知道在return None不需要的时候跳过是不好的方式.

例:

def foo1(x):
    if [some condition]:
        return Baz(x)
    else:
        return None

def foo2(x):
    if [some condition]:
        return Baz(x)

bar1 = foo1(x)
bar2 = foo2(x)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,当条件为假时,函数将返回None.

python function return-value

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