【问题标题】:Can I randomize a list in Python using percentage?我可以使用百分比随机化 Python 中的列表吗?
【发布时间】:2020-05-28 02:05:12
【问题描述】:

最近我一直在做一个项目,我需要将字符以随机顺序放置,并且有限制,例如,如果我有一个包含 25,000 个"_" 的列表,我需要设置 4% (1,000)这些"_" 中的"X" 在随机位置。

我正在使用的列表是一个二维数组。

【问题讨论】:

  • 输出中"X"s 的数量是否需要正好为 1000(即正好 4%)?如果这不需要精确,您可以将 4% 解释为 4% 的概率将 _X 交换。

标签: python arrays list random


【解决方案1】:

创建一个包含每个字符所需数量的列表。然后使用random.shuffle() 随机化。

import random

l = 1000 * ["X"] + 24000 * ["_"]
random.shuffle(l)

【讨论】:

    【解决方案2】:

    如果其他人误解了这个问题,您可以使用 np.random.choice 来获取您需要的字符的示例 idx。例如,你可以写类似

    char_idxs = np.where(ARR == interested_char)
    if len(char_idxs) > max_length:
        difference = len(char_idxs) - max_length
        replace_idxs = np.random.choice(char_idxs,size=difference)
    ARR[replace_idxs] = X
    

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多