今日、リストの要素のすべての可能な組み合わせを取得する方法を実装するときに奇妙なエラーが発生しましたか? Dan Hによるソリューション。このエラーが発生し続けます:
TypeError: 'itertools.combinations' オブジェクトは呼び出し可能ではありません
これがなぜなのか、どうすれば修正できるのか誰か知っていますか? 次のコードを使用します。
def all_subsets(ss):
return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1)))
for subset in all_subsets([1,2,3,4]):
この後、エラーが発生します。誰でも私を助けることができますか?
EDIT1:
人々は完全なコードを求めたので、ここにコードエラーの関連部分があります:
from scapy.all import *
import itertools
from itertools import *
def all_combinations(input):
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
extensionHeader=["IPv6ExtHdrHopByHop","IPv6ExtHdrRouting","IPv6ExtHdrDestOpt","IPv6ExtHdrFragment"]
ip=IPv6(src="2a00:1450:4009:807::1002", dst="2a00:1450:4009:807::1002")
combinations = itertools.combinations(extensionHeader, 1)
for subset in all_combinations(extensionHeader):
index=0
finalForm=""
while index<len(subset):
substring=subset[index:index+17]
if substring is "IPv6ExtHdrRouting":
if index==0:
ip.nh=43
また、完全なエラーは次のとおりです。
WARNING: No route found for IPv6 destination :: (no default route?)
Traceback (most recent call last):
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 18, in <module
>
for subset in all_combinations(extensionHeader):
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 11, in all_com
binations
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
File "C:\Users\Martinooos\workspace\testing\scapyTest.py", line 11, in <lambda
>
return chain(*map(lambda y: combinations(input, y), range(0, len(input)+1)))
TypeError: 'itertools.combinations' object is not callable