Python中如何将枚举得到的单值列表索引转换为整数?
解决单值列表转整数的问题&优化你的用户名生成代码
当然可以把单值列表里的元素转换成整数啦!你的selected_word是通过列表推导式生成的,哪怕只匹配到一个结果,它依然是个列表类型,所以只要直接取列表的第一个元素(索引为0的位置),就能得到你要的整数:
# 你的原有代码 word_1 = random.choice(words) selected_word = [i for i,x in enumerate(words) if x == word_1] # 转成整数 selected_word_index = selected_word[0]
不过这里有个更简洁的写法:Python列表自带的index()方法可以直接返回指定元素的第一个索引,完全没必要用列表推导式绕一圈,代码会更清晰高效:
word_1 = random.choice(words) selected_word_index = words.index(word_1) # 直接拿到单词对应的整数索引
另外,考虑到你是要删除已使用过的单词,其实还有更直接的方案——不用找索引,直接用remove()方法从列表中删除选中的单词,这样后续随机选择时就不会再选到它了:
word_1 = random.choice(words) words.remove(word_1) # 直接删除已选中的单词,一步到位
这样你的代码逻辑会更简洁,也省去了处理索引的步骤~
内容的提问来源于stack exchange,提问作者DecanalGossypine27
相关产品推荐
相关产品推荐

