Python:具有相等和不重复的整数列表

杜康德

对于 (1, 13) 范围内的整数,我需要构建总和为 13 的三个整数的所有可能变体。变体不应重复。例如 (1,2,10), (2,1,10), (10,1,2) 和 (10,2,1) 都是一个变体的重复。因此结果列表应该只有这个元组之一,与哪一个无关。在结果元组中的不同位置具有相同整数的变体(如 (1,1,11))也是有效的。对于这些变体,重复将如 (1,1,11)、(1,11,1) 和 (11,1,1)。

为了更好地解释这里的问题,这是它来自的故事:

艾伦和德雷克的两个朋友见面了。

艾伦:我有三个孩子。

德雷克:他们几岁了?

艾伦:孩子们的年龄总和等于 13。

所以我试图获得所有可能年龄的列表。

我有这个代码,它生成我需要删除的所有可能的重复:

ages = list(range(1,13))
kids_ages = []
for a in ages:
  for b in ages:
    for c in ages:
      if a + b + c == 13:
        kids_ages.append((a,b,c))

结果我得到:

([(1, 1, 11),
(1, 2, 10),
(1, 3, 9),
(1, 4, 8),
(1, 5, 7),
(1, 6, 6),
(1, 7, 5),
(1, 8, 4),
(1, 9, 3),
(1, 10, 2),
(1, 11, 1),
(2, 1, 10),
(2, 2, 9),
(2, 3, 8),
...

如何摆脱重复?

格泽戈尔茨斯基宾斯基

尝试:

import itertools

res=list(sorted(el) for el in itertools.combinations_with_replacement(range(1, 14), 3) if sum(el)==13)

print(res)

输出:

[[1, 1, 11], [1, 2, 10], [1, 3, 9], [1, 4, 8], [1, 5, 7], [1, 6, 6], [2, 2, 9], [2, 3, 8], [2, 4, 7], [2, 5, 6], [3, 3, 7], [3, 4, 6], [3, 5, 5], [4, 4, 5]]

[Program finished]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取所有索引的列表,其中两个长度相等的整数列表具有相同的条目(在 Python 中)

如何不重复地创建随机整数列表?

重复整数列表

生成具有给定位数和位数索引总和的整数列表

从列中具有重复和不重复值的数据框中创建一个列表

如何映射字符串列表和整数列表并查找具有最大价值的字符串

Python基本练习:给定一个整数列表,如果有重复,则放置一个'*'

创建带有起点和终点的整数列表的问题

Python:生成具有最小和最大位数的唯一随机数列表

在整数列表中查找重复项

Python-将整数列表分为正数和负数

浮点数列表的用户输入不重复

合并元组列表和整数列表

删除列表列表内存在的重复整数列表,而不考虑整数列表的顺序

接受整数或整数列表的 Python 函数

使用 map 和函数列表迭代整数列表

在Python中从具有混合结构(列表和整数)的嵌套列表中删除元素

识别列表是否具有在python中相等的连续元素

Shell脚本生成具有不重复字符的单词列表

计算python整数列表中重复数字的最长连胜

如何连接和打印整数列表?

读取非负整数列表,并显示最大整数,最小整数和所有整数的平均值

将具有整数列的数据帧转换为列表列,其中列表中的每个元素都是整数向量

展平包含整数的列表和整数列表

Hibernate CriteriaQuery如何查找具有两个条件的整数列表

对具有较高优先级正数的绝对值的整数列表进行排序

迭代具有相同总和的固定大小正整数列表的算法

具有字符串列到整数列表列的数据框

如何生成具有不同组合的连续整数列表?