【问题标题】:Adding every two numbers in a list将列表中的每两个数字相加
【发布时间】:2021-09-24 03:07:22
【问题描述】:

我有以下问题

import random
a_list = range(0,64)
a = random.sample(a_list,16)
print(a)

所以我得到了 16 个随机数。

现在我想要进一步添加 16 个元素的随机集合中的每两个数字,即使每个数字都与其自身相加。

【问题讨论】:

    标签: list random addition


    【解决方案1】:

    如果您只想使用纯 Python 列表,解决方案可以是单行列表推导式。

    sums_list = [n+m for n in a for m in a]
    

    借助 Numpy,您可以使用广播。

    import numpy as np
    arr = np.array(a)
    sums = arr[:, np.newaxis] + arr[np.newaxis, :]
    sums_list = sums.flatten().tolist()
    

    【讨论】:

    • 你能告诉我在得到这些总和的列表后,我如何告诉 python 给我原始列表中缺失的数字(0 --63)并且没有缺失的数字返回跨度>
    • 您可以使用设置差异:set(a_list) - set(sums_list).
    • 满意请采纳。
    • 是的,谢谢。感谢您的努力。
    【解决方案2】:

    你能写下你想要达到的目标吗?

    【讨论】:

    • 我想要一个 0 --63 个数字的列表然后我想随机选择任何 16 个数字然后我想要 16 个数字的随机列表中两个数字的所有总和的列表并想要检查如果总和会给我原始列表(0 ---63),只使用随机的 16 个数字
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    相关资源
    最近更新 更多