将项目从一个列表带到另一个列表的更清洁方法
Posted
技术标签:
【中文标题】将项目从一个列表带到另一个列表的更清洁方法【英文标题】:Cleaner Way to Take Items from One List to Another 【发布时间】:2013-08-28 17:06:26 【问题描述】:我一直在写一个文字冒险游戏,有一次我需要从一个列表中取出一个由用户输入给出的项目并将其移动到另一个列表。具体来说,当您知道项目名称时,除了以下内容之外,还有什么方法可以获取项目的索引:
list_one = ["item one", "item two"]
index_one = list_one.index("item one")
我在脚本中使用的代码是:
player.items.append(start_room.items.pop(start_room.items.index(next)))
接下来是输入,这看起来很混乱。如果有更简单的方法来解决这个问题,请告诉我。谢谢!
【问题讨论】:
列表中项目的顺序重要吗?列表可以包含重复项吗?如果两者的答案都是“否”,您应该使用集合而不是列表。 你可以在这里试试codereview.stackexchange.com/questions/tagged/python ;) 顺便说一句,不要将变量命名为next
,它会影响内置函数next()
。
【参考方案1】:
如果您已经知道该项目,则无需致电index
或pop
或其他:
list_one.remove (item)
list_two.append (item)
【讨论】:
【参考方案2】:我更喜欢使用pop()
的返回方法:
list_two.append( list_one.pop( list_one.index( item ) ) )
如果你突然决定需要索引,你不需要做太多改变:
i = list_one.index( item )
list_two.append( list_one.pop( i ) )
【讨论】:
以上是关于将项目从一个列表带到另一个列表的更清洁方法的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python中的映射函数将项目从一个列表减去另一个列表