相关疑难解决方法(0)

Python 3将地图字典更新方法更新为其他字典列表

在Python 2中,我可以执行以下操作:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> map(d.update, extras)
>> d['c']
>> 4
Run Code Online (Sandbox Code Playgroud)

在Python 3中得到一个KeyError:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> map(d.update, extras)
>> d['c']
>> KeyError: 'c'
Run Code Online (Sandbox Code Playgroud)

我想在Python 3中实现与Python 2中相同的行为.

我知道Python 3中的map将返回一个迭代器(lazy evaluation和whatnot),必须迭代它才能更新字典.

我假设d['c']密钥查找会以某种方式触发映射迭代,但事实并非如此.

有没有pythonic方法来实现这种行为而不编写for循环,我发现与map相比,它是冗长的.

我想过使用列表推导:

>> d = {'a':1}
>> extras = [{'b':2}, {'c':4}]
>> [x for x in map(d.update, extras)]
>> d['c']
>> 4
Run Code Online (Sandbox Code Playgroud)

但它似乎并不像pythonic.

python dictionary python-2.7 python-3.x map-function

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

Python 2 和 Python 3 中 zip() 函数的区别

我想知道zip()python 2 和 python 3 中的函数有什么区别。我注意到timeit在这两个函数上使用模块时,python 3 函数要快得多。非常感谢提前:)

python zip

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

如何从python3中的单行输入读取整数数组

我想从python3中的单行输入读取一个整数数组.例如:将此数组读取到变量/列表

1 3 5 7 9
Run Code Online (Sandbox Code Playgroud)

我试过了什么

  1. arr = input.split(' ')但这并没有将它们转换为整数.它创建字符串数组

  2. arr = input.split(' ')

    for i,val in enumerate(arr): arr[i] = int(val)

第二个是为我工作.但我正在寻找一个优雅的(单线)解决方案.

python arrays input list python-3.2

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

Python - 在for循环中使用冻结集条目列表的问题

我正在尝试从使用Python的书中学习apriori机器学习算法,作为该学习的一部分,我目前仍然遇到以下问题:

以下代码构造似乎工作正常:

Ck = [[1], [2], [3], [4], [5]]
    for tranid in range(10): 
        for candidate in Ck:
            print("Printing candidate value: ", candidate)
Run Code Online (Sandbox Code Playgroud)

但是,以下不起作用:

Ck = [[1], [2], [3], [4], [5]]
Ck2 = map(frozenset, Ck)
    for tranid in range(10): 
        for candidate in Ck2:
            print("Printing candidate value: ", candidate)
Run Code Online (Sandbox Code Playgroud)

当我将原始迭代的每个元素映射到冻结集时,我注意到内部循环("对于Ck2中的候选者")仅执行一次.之后它永远不会执行.上面没有冻结集的代码正确地循环内循环10次.但是,使用frozenset映射,我可以让内循环只执行一次.

请帮我解决这个问题.本书已将可迭代值映射到frozenset,因为它们不希望它对于算法的目的是可变的.我只是想按原样跟随它.

我在Anaconda(Spyder)上使用Python 3.5.1.

请帮助,因为我不熟悉Python和机器学习.

谢谢和问候,Mahesh.

python set python-3.x frozenset

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

类型错误:“地图”对象不可逆

我花了将近 2 小时的时间使用weights.npz中的预训练模型(tensorflow)来 检测车牌,但我无法修复它。我收到此错误消息,我以前从未见过。那么,如何解决呢?

回溯(最近一次调用最后一次):文件“./detect.py”,第 189 行,在 pt1 = tuple(reversed(map(int, pt1))) TypeError: 'map' 对象不可逆

python opencv python-3.x tensorflow

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

Python:将地图对象转换为列表会使地图对象为空?

我有一个要打印为列表的地图对象,但此后继续用作地图对象。实际上,我想打印长度,以便将其强制转换为列表,但是如果仅按如下所示打印内容,也会出现此问题:

print("1",my_map)
print("1",list(my_map))
print("2",my_map)
print("2",list(my_map))
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出。

1 <map object at 0x7fd2962a75f8>
1 [(1000.0, 1.0, 0.01, 0.01, 0.01, 0.01, 0.01)]
2 <map object at 0x7fd2962a75f8>
2 []
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,如何避免继续使用地图及其内容?

casting python-3.x

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

Python sched替代取消所有事件

我正在寻找sched模块的替代方案,这将允许我随时取消所有事件.sched只允许通过id取消单个事件(在调度事件时从调度程序返回).任何指向Python替代sched的指针都将受到赞赏.谢谢Toni p

python events

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

在lambda中使用print

我想在lambda中使用print.像这样的东西:

lambda x: print x
Run Code Online (Sandbox Code Playgroud)

我明白,在Python 2.7中打印不是一个功能.所以,基本上,我的问题是:在Python 2.7中使用print作为函数是否有一种漂亮的方法?

python python-2.7

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

为什么对可迭代对象进行映射会返回一次性可迭代对象?

为什么map使用可多次迭代的对象调用时不返回也可多次迭代的对象?我认为后者更为合理。

我的用例是我有很多data,因此只能对其进行迭代。map(理论上)非常适合 上的操作data,因为它是惰性的。然而,在下面的示例中,我希望两次长度相同。

iterable = [1,2,3,4]  # this can be iterated repeatedly
m = map(lambda x:x**2, iterable) # this again should be iterable repeatedly
print(len(list(m))) # 4
print(len(list(m))) # 0
Run Code Online (Sandbox Code Playgroud)

如何映射可迭代结构并获取可迭代结构?

编辑: 这是一个恕我直言应该如何工作的示例,演示了惰性评估:

def g(): 
    print('g() called')

data = [g, g]

# map is lazy, so nothing is called
m = map(lambda g: g(), data)
print('m: %s' % len(list(m))) # g() is called here
print('m: %s' % len(list(m))) # this should work, …
Run Code Online (Sandbox Code Playgroud)

python iteration iterator python-3.x

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