【问题标题】:Is it possible to create a new list from a shuffled list?是否可以从随机列表中创建新列表?
【发布时间】:2017-05-01 07:09:30
【问题描述】:
OriginalName = ["a", "b", "c"]

ShuffleList = random.shuffle(OriginalName)
print ShuffleList

当我运行上述内容时,它返回为“无”。洗牌后,我正在尝试创建一个新列表。

我想创建另一个随机创建的列表,可能类似于["c", "a", "b"]

【问题讨论】:

  • 这里有一个类似的问题:stackoverflow.com/questions/976882/…random.shuffle 执行此操作,因此返回 None 并更改原始数据 - 复制它或使用`random.sample(OriginalName, len(OriginalName)) `改为

标签: python list random shuffle


【解决方案1】:

random.shuffle 正在重新组织原始列表 - 您只使用一个列表。

试试类似的东西

OriginalName = ["a", "b", "c"]
ShuffleList = list(OriginalName)  # making a new list copy

random.shuffle(ShuffleList)

现在您有两个列表,原始列表和随机列表。

旁注:确保使用蛇形外壳(original_name 而不是OriginalName)。这是 Python 约定。

【讨论】:

  • 我想要另一个列表,它是随机创建的,类似于["c", "a", "b"]。这可能吗?
  • 是的,ShuffeList 是您原始列表的副本,然后在答案中随机排列。
【解决方案2】:

先创建新列表,然后随机播放。

shuffled = OriginalName[:]
random.shuffle(shuffled)
print shuffled

【讨论】:

    【解决方案3】:

    我会为此使用random.sample

    import random
    l = list(range(5))
    print(random.sample(l, len(l)))
    

    打印类似的东西

    [4, 0, 2, 1, 3]
    

    【讨论】:

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