如何从Python .remove中的列表中删除字符串元素对我不起作用

凯文·尼贝特(Kevin Nisbet)

为了避免再次得到相同的单词,我试图从列表中删除字符串,但是当我尝试.remove或.pop时,并不能删除该单词。为什么会这样,我该如何排序?

我还尝试创建该单词的副本,以防该单词在从函数返回该单词之前被删除,这是否会影响该单词(如果已选择)?

谢谢您的帮助,您可能会告诉我,我是编程新手!

def choose_a_word_easy():  # function for choosing random  easy word.
    words = ['ant', 'bee', 'cat', 'dog', 'egg', 'hat', 'golf', 'jelly', 'king', 'bird', 'hot', 'cold', 'fish', 'log',
             'dad', 'mum', 'goal', 'help', 'file', 'neat', 'car', 'moon', 'eye', 'tree', 'rice', 'ice', 'speed', 'rat',
             'water', 'rain', 'snow', 'spoon', 'light', 'gold', 'zoo', 'oil', 'goat', 'yoga', 'judo', 'japan', 'hello']

    pick = random.choice(words)  # randomly choose any word from the list.
    # p1 = pick
    words.remove(pick)
    return pick
奥利维尔·梅兰松(OlivierMelançon)

通过在函数声明列表choose_a_word_easy,每次调用都会创建一个新列表。您希望在每个调用中都可以重用相同的列表。为此,可以在函数范围之外创建列表并将其作为参数传递。

words = ['ant', 'bee', 'cat', 'dog', ...]

def pick_and_remove(lst):
    pick = random.choice(lst)
    lst.remove(pick)
    return pick

pick = pick_and_remove(words)

print(pick) # 'bee'
print(words) # ['ant', 'cat', 'dog', ...]

请注意,通过随机选择一个索引并将其弹出,可以使您的函数效率更高一些。

def pick_and_remove(lst):
    i = random.randrange(len(lst))
    return lst.pop(i)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python-从列表中忽略字符串不起作用

减少python中的字符串不起作用

如何从字符串中删除列表的所有元素?

从列表的元素中删除字符串-Python

Python-在字符串中查找子字符串(代码不起作用)

Python - 从列表中的字符串元素中删除子字符串?

PYTHON:如何在检查字符串中的列表元素后从字符串中删除它们

如何从整数列表中删除所有字符串元素,并在整数旁边添加字符串[Python]

如何在Python系列中删除字符串元素?

如何从列表中删除字符串?

如何从 python 字典列表值中删除字符串 ''?

如何摆脱字符串中的某些字符?.replace()不起作用

使用replace方法在Python中替换字符串中的值不起作用

为什么Java中的这种反向字符串逻辑在python中不起作用?

Python从列表中删除包含其他列表中的子字符串的元素

Unity 如何从列表中删除游戏对象?似乎对我不起作用

不等于运算符(!=)在python字符串比较中不起作用

字符串到 int/float 转换在树莓派上的 python 中不起作用

循环中的Jupyter Notebook中的Python F字符串不起作用

IP地址字符串提取在Python3中不起作用

从 Python 元组列表中的字符串中删除字符

python,从列表中的字符串中删除字符

如何从 Python 中的给定字符串中删除子字符串列表?

如何在Python的字符串列表中的特定字符后删除子字符串

当字符串和子字符串的长度相等时,Python 中字符串的 find() 是否不起作用?

如何从R中的字符串中删除这些元素

如何在列表的所有元素中的某个点之后删除字符串?

如何删除列表中具有相同字符串但较低 startDate 的元素

如何从Erlang的列表或字符串中删除字符?