Oni*_*lol 0 python list-comprehension python-2.7
我必须随机从列表中选择N个元素,从列表中删除它们并将它们添加到另一个元素中.到目前为止我的方法是这样的:
import random
x = ['a','b','c','d','e','f','g']
y = []
for v in reversed(list(x)):
z = x.pop(x.index(random.choice(x)))
y.append(z)
Run Code Online (Sandbox Code Playgroud)
哪个输出:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
['a', 'b', 'c', 'd', 'f', 'g']
['a', 'b', 'c', 'd', 'g']
['b', 'c', 'd', 'g']
['b', 'c', 'g']
['c', 'g']
['g']
['e', 'f', 'a', 'd', 'b', 'c', 'g']
Run Code Online (Sandbox Code Playgroud)
有没有办法用列表推导来写这个?这超出了我的理解范围.
原始列表没有结束洗牌,它只删除了选择的元素.
此功能已内置于随机模块中
>>> x = ['a','b','c','d','e','f','g']
>>> shuffle(x)
>>> x
['b', 'a', 'f', 'e', 'c', 'd', 'g']
>>>
Run Code Online (Sandbox Code Playgroud)
如果您不想在适当的位置修改x,请使用 shuffle(x[:])
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |