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 都被附加到一个新列表中,并且新列表被附加到一个新字典中?换句话说,如果有 15 种 a、b 值的组合适用于该算法,有没有办法在 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 回答