【问题标题】:python randrange duplicates selectionpython randrange重复选择
【发布时间】:2016-06-05 17:24:29
【问题描述】:

如何确保每次在 python 中返回的值都是唯一的?我像这样使用 random.randrange -

batter = ("Sammy Slammer","Lonnie Longball","Billy Bomber","Jack Runs","Ricky Redic",)
bnum = random.randrange(0,5)
upnow = batter[bnum]

除了我经常得到重复之外,这很有效..

感谢@Fabricator -

batter = ("Sammy Slammer","Lonnie Longball","Billy Bomber","Jack Runs","Ricky Redic",)
bnum = random.randrange(0,5)
upnow = batter[bnum]
l = list(batter)
random.shuffle(l)
for upnow in l:
print upnow

还有——

batter = ("Sammy Slammer","Lonnie Longball","Billy Bomber","Jack Runs","Ricky Redic",)
l = list(batter)
random.shuffle(l)
for upnow in l:
print upnow

我得到的错误是我的 sqlite 3 语句 -

"for i in reversed (xrange)1,len(x) int has no len()"

我缩短了代码,sqlite3 可以在没有随机播放的情况下正常工作..

    bbatter_ai =  (brow["BATTER"])
tab = cab_ai + at_bat
conn.execute("UPDATE batter set AB = ? WHERE BATTER = ?",[tab] + [bbatter_ai])

【问题讨论】:

    标签: python random unique random-sample


    【解决方案1】:

    你可以洗牌球员名单:

    l = list(batter)
    random.shuffle(l)
    for upnow in l:
        print upnow
    

    空闲:

    In [1]: import random
    
    In [2]: batter = ("Sammy Slammer","Lonnie Longball","Billy Bomber","Jack Runs","Ricky Redic",)
    
    In [3]: l = list(batter)
    
    In [4]: random.shuffle(l)
    
    In [5]: for upnow in l:
       ...:     print upnow
       ...:     
    Jack Runs
    Sammy Slammer
    Lonnie Longball
    Billy Bomber
    Ricky Redic
    

    【讨论】:

    • 感谢您的快速响应,这会引发错误“for i in reversed (xrange)1,len(x) int has no len()”
    • @RyanD,请发布您的新代码。这似乎与我的答案无关
    • @RyanD,刚刚发布了我的 IDLE 会话,我无法重现您的错误
    • 我认为我的错误与我的 sqlite3 语句有关 -
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2021-08-02
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多