我希望有人可以解决我遇到的问题。我有一个变量数组:
[3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
我想弄清楚如何通过一个共同的多个/分母/任何你称之为它的方式将它们拆分...说这个数组的公共变量是13,我希望结果为{{1变量数量,例如:
n
是否有算法可以做类似的事情?
答案 0 :(得分:1)
最接近我理解你的问题的方法是,数字应按除以n的余数分组。 (ⅰ%N)。
input=[3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
n=13
result_dict = dict(zip(range(n),[[]]*n))
for i in input:
result_dict[i%n] = result_dict[i%n] + [i]
{0: [],
1: [],
2: [],
3: [3],
4: [4, 30, 43],
5: [18, 31],
6: [58],
7: [7, 20, 46, 59],
8: [8],
9: [],
10: [],
11: [],
12: [12, 25, 38, 51]}
答案 1 :(得分:1)
这应该可以解决您的疑问。根据您的要求替换数组和数字。
def run():
given_array = [3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
number = 13
final_result = []
for e in given_array:
d = e
intermediate_array = []
for f in given_array:
if e not in intermediate_array:
intermediate_array.append(e)
d = d+number
if d in given_array:
intermediate_array.append(d)
given_array.remove(d)
if intermediate_array and len(intermediate_array) > 1:
final_result.append(intermediate_array)
print final_result
if __name__ == '__main__':
run()