如何在使用随机,随机播放时只获取列表中的一些字符串?在python中

  发布于 2023-02-07 18:39

从列表中创建字典时,我使用

for i in range(10):
    random.shuffle(list)
    print "".join(list)

这样我就得到了10个不同的列表随机组合,但是如果列表有10个字符串,那么每个随机我会得到10个字符串,如下所示:

>>> list
['1', 'n', 'f', 'g', 'z', 'j', '5', 's', '2', '3']
>>> for i in range(5):
...    random.shuffle(list)
...    print "".join(list)
... 
13jgzs25nf
15zngs2jf3
jgfsn3z251
g3sf512zjn
5nsj3fg21z

但是,我只想要从列表中的10个字符串中只编写5个随机组合,我该怎么做呢?

TY!

==========================

@volatility
in an attempt to use what you showed me but try to get a full list like i did in my question i did this:

>>> lst=["1","2","3","f","s","g","5","n","z","j"]
>>> for i in range(10):
...     random.sample(list, 3)
...     print "".join(list)
... 
['5', '2', 'n']
gj5nfs231z
['n', '5', '1']
gj5nfs231z
['z', '3', 'j']
gj5nfs231z
['5', 'g', 'n']
gj5nfs231z
['g', 'z', '2']
gj5nfs231z
['2', '3', 'f']
gj5nfs231z
['g', '2', '5']
gj5nfs231z
['3', 'n', '2']
gj5nfs231z
['g', 'z', '2']
gj5nfs231z
['n', 's', 'g']
gj5nfs231z

这是进步,我猜?我最终想得到的是一个看起来像这样的输入(如果我使用上面的列表)

52n
z3j
5gn
23f
g25
3n2
gz2
nsg

那是可行的吗?

1 个回答
  • 你可以用random.sample它:

    >>> lst = ['1', 'n', 'f', 'g', 'z', 'j', '5', 's', '2', '3']
    >>> import random
    >>> random.sample(lst, 5)
    ['f', 's', '3', 'z', 'n']
    

    要获得所需的输出,您可以简单地将其放入for循环中:

    >>> for i in range(10):
    ...    print ''.join(random.sample(lst, 5))
    ...
    jn513
    13g2f
    nfsj5
    nj3s1
    3zn51
    sgj2f
    5ns3g
    sg51z
    23j1z
    n2g53
    

    附注:不要list用作变量名 - 它会影响内置list类型.

    2023-02-07 18:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有