Python 从random.choice()生成的字符中排除特定字符

Python 从random.choice()生成的字符中排除特定字符,python,python-3.x,string,random,choice,Python,Python 3.x,String,Random,Choice,我正在尝试使用random.choice(string.ascii_小写)生成随机字符。我不想在random.choice()中包含所有小写字符。我想排除一些 import random import string random.choice(string.ascii_lowercase) 选择 “abcdefghijklmnopqrstuvwxyz” 排除 从随机函数生成的选项中选择“abd”,使用以下命令: import random import string unwanted_

我正在尝试使用random.choice(string.ascii_小写)生成随机字符。我不想在random.choice()中包含所有小写字符。我想排除一些

import random 
import string

random.choice(string.ascii_lowercase)
选择 “abcdefghijklmnopqrstuvwxyz” 排除 从随机函数生成的选项中选择“abd”,使用以下命令:

import random 
import string

unwanted_chars = 'abd'
random.choice([s for s in string.ascii_lowercase if s not in unwanted_chars])

您可以通过将所有a、b、d字符替换为空字符串来删除它们:

import re

s = re.sub('[abd]', '', string.ascii_lowercase)

为什么不自己显式地写你想要的字母呢?用只包含你需要的字符的字符串替换
string.ascii_lowercase
?谢谢你的解决方案。这回答了我的问题