社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在Python中从列表中移除sting元素

Kevin Nisbet • 5 年前 • 1482 次点击  

我正在尝试从列表中删除字符串,在选择这些字符串后,我将避免再次获取同一个单词,但当我尝试.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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55089
 
1482 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Olivier Melançon
Reply   •   1 楼
Olivier Melançon    5 年前

宣布你的名单 功能 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)