0

だから私が些細な機能を持っているなら、例えば:

def summation_ind(a,b):
          summation = 2*a + 3*b
          if summation < 4:
              return True
          else:
              return False

そして、aとbは数字のリストから来ており、次のようなforループがあります。

newdict = {}
newlist = []
for a in R:
          for b in R:
              if summation(a,b):
                  newlist.append((a,b))
newdict['numbs']=set(newlist)

ループが実行されるたびに、aとbが新しいリストに追加され、新しいリストが新しいディクショナリに追加されるようにするにはどうすればよいですか?言い換えると、アルゴリズムで機能するa、b値の組み合わせが15ある場合、15の新しい辞書に15の新しいリストを作成する方法はありますか?それは可能ですか?

ありがとうございました :)

4

1 に答える 1

1

defaultdictを使用して簡単にすることができます。

辞書のセットを使用する:

from collections import defaultdict

dictionary = defaultdict(set)

for a, b in ((a, b) for a in R for b in R):
    if summation(a, b):
        dictionary['numbs'].add((a,b))

辞書のリストを使用する:

from collections import defaultdict

dictionary = defaultdict(list)

for a, b in ((a, b) for a in R for b in R):
    if summation(a, b):
        dictionary['numbs'].append([a,b])

またはリスト内包表記を使用することもできます:

dictionary['numbs'] = [(a, b) for a in R for b in R if summation(a, b)]
于 2012-12-30T15:02:52.593 に答える