Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个';动态列表';在python的迭代过程中_Python_Integer_Modulo - Fatal编程技术网

创建一个';动态列表';在python的迭代过程中

创建一个';动态列表';在python的迭代过程中,python,integer,modulo,Python,Integer,Modulo,背景 设有一组整数 trialinteg = [231,355,112,1432,2434,5235,7896,7776,27421,42342] 然后可以将它们划分为模6的不同等价类 问题 我们是否可以创建一个算法,将所有这些整数分类为各自的等价类,并将结果存储在python字典中 比如说 d = {"class0": [112,1432,..], "class1": [231,...], ...} 更重要的是,我们是否可以使d更改其大小和键的名称,作为定义等价类(在本例中为6)的整数更改

背景

设有一组整数

trialinteg = [231,355,112,1432,2434,5235,7896,7776,27421,42342]
然后可以将它们划分为模6的不同等价类

问题

我们是否可以创建一个算法,将所有这些整数分类为各自的等价类,并将结果存储在python字典中

比如说

d = {"class0": [112,1432,..], "class1": [231,...], ...}
更重要的是,我们是否可以使d更改其大小和键的名称,作为定义等价类(在本例中为6)的整数更改

进步

可以将等价类0模6的所有整数存储在列表中。但目前尚不清楚如何创建一个“动态”字典,当所讨论的整数发生变化时(例如从6变为121),该字典可以调整其大小和键名


将类值本身用于字典键

my_mod = 6
for num in trialinteg:
    d[num % my_mod].append(num)
我假设您已经可以处理初始化dict;如果没有,请查看本网站上的支持性问题

口述理解可以在单个赋值语句中完成:

trial = [231,355,112,1432,2434,5235,7896,7776,27421,42342]
d = {equi: [i for i in trial if i%my_mod == equi] 
     for equi in range(my_mod)}
d的结果值:

{0: [7896, 7776, 42342],
 1: [355, 27421],
 2: [],
 3: [231, 5235],
 4: [112, 1432, 2434],
 5: [] }
您可以使用:

从集合导入defaultdict
trialinteg=[23135512143224345235789677762742142342]
d=默认DICT(列表)
对于trialinteg中的x:
d[f'class{x%6}'].追加(x)
印刷品(d)
#defaultdict(,{'class3':[2315235],'class1':[35527421],'class4':[1121432434],'class0':[7896777642342])
{0: [7896, 7776, 42342],
 1: [355, 27421],
 2: [],
 3: [231, 5235],
 4: [112, 1432, 2434],
 5: [] }
from collections import defaultdict

trialinteg = [231,355,112,1432,2434,5235,7896,7776,27421,42342]

d = defaultdict(list)

for x in trialinteg:
    d[f'class{x % 6}'].append(x)

print(d)
# defaultdict(<class 'list'>, {'class3': [231, 5235], 'class1': [355, 27421], 'class4': [112, 1432, 2434], 'class0': [7896, 7776, 42342]})