【问题标题】:How to shuffle a list of tuples? [duplicate]如何打乱元组列表? [复制]
【发布时间】:2019-11-29 09:53:16
【问题描述】:

我正在尝试在 Python 中打乱一个元组列表,

import random
a = [(1,2,3),(4,5,6),(7,8,9)]
b = random.shuffle(a)

但是当我运行上述代码时,bNone

如何打乱元组列表?

【问题讨论】:

  • Shuffle 就地工作意味着它修改了a

标签: python


【解决方案1】:

要洗牌 a 但返回洗牌后的列表并保持 a 不变使用 random.sample

import random
a = [(1,2,3),(4,5,6),(7,8,9)]
b = random.sample(a, k=len(a))
print(b)
#[(4, 5, 6), (7, 8, 9), (1, 2, 3)]
print(a)
#[(1,2,3),(4,5,6),(7,8,9)]

random.shuffle 将列表打乱,因此返回值为None

import random
a = [(1,2,3),(4,5,6),(7,8,9)]
random.shuffle(a)
print(a)
#[(4, 5, 6), (7, 8, 9), (1, 2, 3)]

【讨论】:

  • 只是一个额外的评论,如果您需要原始列表,只需事先制作一份副本。
  • 如果您阅读文档,它说只是使用示例。
  • 对,或者使用sample()
  • 我不确定为什么我的回答被否决了。我打算包含更多详细信息,只是需要链接等。想知道为什么首先发生的事情的答案
  • 我猜是因为副本已经有了详尽的答案,但无法确定。也许这在meta上讨论过?
猜你喜欢
  • 2018-05-24
  • 2016-11-17
  • 2021-01-10
  • 2021-03-29
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多