【问题标题】:Combining an output of multiple lists into one list (Python)将多个列表的输出组合成一个列表(Python)
【发布时间】:2012-09-30 19:45:29
【问题描述】:

我正在尝试制作一个输出随机哈希的简单循环。

    import bcrypt
    from Crypto.Random import random

    def PRG():
        return random.randint(1,100000)

    def p():
        return [str(bcrypt.gensalt(PRG()))]

    for i in range(1,6):
        print(list(p()))

这会返回:

    ['$2a$31$GyPdJsZDHSdfFlRqrtkuWO']
    ['$2a$31$r.d6EnQelVkLRkhgLT/dDe']
    ['$2a$31$TAFTlk09m1mZTrZjxqzxGu']
    ['$2a$31$dEC9aKcvz47tqtDH6Ge5XO']
    ['$2a$31$f3Qt6P9zXt7D2JCntGWCOu']

我想将这些列表合并为一个列表。我知道一旦我知道输出,我就可以将列表与另一行代码一起添加,但是用 100 个不同的列表来做这件事是不切实际的。如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • p 中的循环没有意义,因为第一次迭代将 return。此外,该函数包含语法错误(缺少冒号)。你的意思是def p(): return [str(bcrypt.gensalt(PRG())) for _ in xrange(5)]
  • 我刚刚意识到 p() 中的循环是多余的,正如你所说,我在这里复制时忘记了 p() 上的冒号。但是谢谢,我删除了最后两行并修改了 p(),它可以按我的意愿工作。

标签: python list python-2.7


【解决方案1】:

我建议让p() 只返回一个元素,并使用列表推导来构建最终列表:

def p():
    return str(bcrypt.gensalt(PRG()))

list_of_salts = [p() for _ in range(1,6)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2022-12-05
    相关资源
    最近更新 更多