我有列表,我想从中返回一个特定元素,但将其保存为列表,即:,
inventory = ['aaa', 'bbb', 'ccc']
target = 'bbb' #may or may not be set
if target: inventory = inventory[1]
for i in inventory:
#do something with 'bbb'
这显然是假的,但表明了一般的流程; fwiw,我用这种方式编写它,以便用户可以指定特定条目或所有条目,但不能指定两个而不是0.目前,如果我指定target
,则for
循环迭代每个字符,而不是单个元素。
答案 0 :(得分:4)
要直接回答您的问题,请执行以下操作:
inventory = [inventory[1]]
这将创建一个由inventory
的第一个元素组成的单元素列表,并将其分配回inventory
。例如:
>>> inventory = ['aaa', 'bbb', 'ccc']
>>> inventory
['aaa', 'bbb', 'ccc']
>>> inventory = [inventory[1]]
>>> inventory
['bbb']
一种可以说更清晰的方法是使用列表推导来选择符合给定标准的inventory
元素:
>>> inventory = ['aaa', 'bbb', 'ccc']
>>> target = 'bbb'
>>> inventory = [item for item in inventory if (not target) or (item == target)]
>>> inventory
['bbb']
答案 1 :(得分:1)
如果您只想对迭代使用它,那么您可以简单地使用列表文字:
for i in [inventory]:
...
但我怀疑你是否需要一个for
循环来实现单例迭代。