python - 获取不在列表中的随机字符串
问题描述
我有一个选择列表。我们假设它是['active', 'inactive', 'deleted']
. 我想获得一个不在该列表中的随机字符串(例如,disabled
),复杂之处在于我不想自己查看该列表(函数必须普遍适用于任何字符串列表)。
我知道如何从列表中获取随机字符串random.choice
。我想要的是它的倒数。
实际案例 - 我想写一个带有assertNotIn
断言的单元测试。
所以,我现在的代码如下:
import random
import string
insiders = ['active', 'inactive', 'deleted']
while True:
outsider = ''.join(random.choice(string.ascii_letters) for _ in range(random.choice(range(1, 10))))
if outsider not in insiders:
break
我的问题是:有没有更短的解决方案?理想情况下,单线。像这样的东西:
outsider = random.not_in_list(insiders)
解决方案
正如我在一个问题中提到的那样,我目前有一个解决方案。它基于一种random.choice
方法并生成任意长度的字符串(从 1 到 9 个符号):
import random
import string
insiders = ['active', 'inactive', 'deleted']
while True:
outsider = ''.join(random.choice(string.ascii_letters) for _ in range(random.choice(range(1, 10))))
if outsider not in insiders:
break
结果:
'aJirzLZjD'
# or
'x'
# or
'PYxAeL'
# and so on...
推荐阅读
- javascript - 我如何在这里关闭我的覆盖模式框,它不起作用
- python - 正则表达式适用于 Sublime,而不适用于 Python (Jupyter)
- python - 如何使用堆栈跟踪来告诉我应该为 Python 的 try/except 使用哪个异常
- php - PHP - 使用 2 个外键将数据插入 MySQL 表
- r - 获取R包中包含的函数列表,无需下载包
- python - 如何让数据从 Python“提交”到 SQL Server?
- sqlite - 从 SQLite 中的所有行中减去平均值
- python - keras:在源内部计算权重以输入乘法
- mongodb - 执行 $set 文档时 Date.now 不保存
- javascript - 使用 jQuery 在 div 之间注入自定义代码