我知道在python中,为了从令牌中随机抽取一个单词,我们可以这样做:
在:
import random
s = 'hi there 3'
words = s.split()
random.choice(words)
出局:
3
但是,如何选择下一个单词(在这种情况下为hi
)而不是数字?我想始终保证我输入的是字符串而不是数字?
答案 0 :(得分:1)
使用以下列表理解来提取非数字词:
local all all peer
host all all 165.227.123.167/32 md5
host all all ::1/128 md5
#That code successfully allows access to database once applied to file and this command following:
sudo systemctl restart postgresql
所以您的代码看起来像
words = [i for i in s.split() if i.isalpha()]
['hi', 'there']
答案 1 :(得分:1)
尝试一下:
words = [ x for x in s.split() if not x.isdigit()]
答案 2 :(得分:1)
另一种选择是将您的列表随机排列,然后选择第一个不是数字的列表。另外,您可以在next
函数中使用生成器表达式,方法是使用str.isalpha()
检查项目的类型。例如:
In [11]: import random
...: s = 'hi there 3'
...: lst = s.split()
...: random.shuffle(lst)
...:
...:
In [12]: next(i for i in lst if i.isalpha())
Out[12]: 'there'