相关疑难解决方法(0)

"yield"关键字有什么作用?

yieldPython中关键字的用途是什么?它有什么作用?

例如,我试图理解这段代码1:

def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild  
Run Code Online (Sandbox Code Playgroud)

这是来电者:

result, candidates = [], [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
    candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
return result
Run Code Online (Sandbox Code Playgroud)

_get_child_candidates调用该方法时会发生什么?列表是否返回?单个元素?它又被召唤了吗?后续通话何时停止?


1.代码来自Jochen Schulz(jrschulz),他为度量空间创建了一个很棒的Python库.这是完整源代码的链接:模块mspace.

python iterator yield generator coroutine

9664
推荐指数
46
解决办法
212万
查看次数

在Python中生成随机文件名的最佳方法

在Python中,生成一些随机文本以预先添加到我保存到服务器的文件(名称)的最佳方法是什么,只是为了确保它不会覆盖.谢谢!

python random hash

87
推荐指数
7
解决办法
7万
查看次数

随机几乎没有随意?

我这样做是为了测试randint的随机性:

>>> from random import randint
>>>
>>> uniques = []
>>> for i in range(4500):  # You can see I was optimistic.
...     x = randint(500, 5000)
...     if x in uniques:
...         raise Exception('We duped %d at iteration number %d' % (x, i))
...     uniques.append(x)
...
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
Exception: We duped 887 at iteration number 7
Run Code Online (Sandbox Code Playgroud)

我尝试了大约10倍以上,我得到的最好结果是在转发器之前迭代了121次.这是您从标准库中获得的最佳结果吗?

python random birthday-paradox

74
推荐指数
8
解决办法
4万
查看次数

有效地生成一个16个字符的字母数字字符串

我正在寻找一种非常快速的方法来为表中的主键生成字母数字唯一ID.

会这样的吗?

def genKey():
    hash = hashlib.md5(RANDOM_NUMBER).digest().encode("base64")
    alnum_hash = re.sub(r'[^a-zA-Z0-9]', "", hash)
    return alnum_hash[:16]
Run Code Online (Sandbox Code Playgroud)

什么是产生随机数的好方法?如果我以microtime为基础,我必须考虑从不同实例同时调用genKey()的几次.

或者有更好的方法来做这一切吗?

python random hash

56
推荐指数
6
解决办法
7万
查看次数

/ dev/random被认为是真正的随机吗?

例如,它可以用于生成一次性密钥键吗?
此外,它的来源是什么,它如何用于生成xy之间的随机数?

linux random encryption

28
推荐指数
2
解决办法
1万
查看次数

17
推荐指数
2
解决办法
3万
查看次数

在Python/Django中生成一个唯一的字符串

我想要的是为我的网站上的用户生成大小为5的字符串(键).更像是BBM PIN.

密钥将包含数字和大写英文字母:

  • AU1B7
  • Y56AX
  • M0K7A

即使我生成数百万字符串,我怎么能对字符串的唯一性保持静止?

尽可能以最蟒蛇的方式,我该怎么做?

python django

14
推荐指数
3
解决办法
2万
查看次数

生成随机字母数字字符串作为模型的主键

我希望一个模型在我创建一个新的实例时自动生成一个随机的字母数字字符串作为其主键.

例:

from django.db import models

class MyTemporaryObject(models.Model):
    id = AutoGenStringField(lenght=16, primary_key=True)
    some_filed = ...
    some_other_field = ...
Run Code Online (Sandbox Code Playgroud)

在我看来,键应该看起来像这样的"Ay3kJaBdGfcadZdao03293".这是非常临时使用的.如果发生碰撞,我希望Django尝试新密钥.

我想知道是否已经存在某些东西,或者我没有看到的一个非常简单的解决方案(我对python和Django来说相当新).否则我想做我自己的版本models.AutoField,这是正确的方法吗?

我已经找到了如何在这里生成密钥,因此它不是关于字符串生成的.我只想让它与简单的Django服务无缝协作,而不会给代码增加太多的复杂性.

编辑:可能的解决方案?你怎么看?

id = models.CharField(unique=True, primary_key=True, default=StringKeyGenerator(), editable=False)
Run Code Online (Sandbox Code Playgroud)

class StringKeyGenerator(object):
    def __init__(self, len=16):
        self.lenght = len
    def __call__(self):
        return ''.join(random.choice(string.letters + string.digits) for x in range(self.lenght))
Run Code Online (Sandbox Code Playgroud)

在再次浏览Django文档之后我想出了它.

python django postgresql

9
推荐指数
2
解决办法
8150
查看次数

pandas创建一个包含n个元素的系列(连续或randbetween)

我正在尝试创建一个pandas系列.

该系列的一列应包含n个连续数字. [1, 2, 3, ..., n]

一列应包含k和之间的随机数k+100.

一列应包含列表中字符串之间的随机选择. ['A', 'B', 'C', ... 'Z']

python series random-sample dataframe pandas

9
推荐指数
1
解决办法
3万
查看次数

Python:string.uppercase与string.ascii_uppercase

这可能是一个愚蠢的问题,但我不明白字符串模块中string.uppercase和string.ascii_uppercase之间的区别.打印两个函数的docstring打印相同的东西.甚至输出print string.uppercaseprint string.ascii_uppercase相同.

谢谢.

python

8
推荐指数
2
解决办法
1万
查看次数