我可以作为列表返回列表中的单个元素吗?

时间:2017-01-30 21:08:01

标签: python arrays python-2.7

我有列表,我想从中返回一个特定元素,但将其保存为列表,即:,

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循环迭代每个字符,而不是单个元素。

2 个答案:

答案 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循环来实现单例迭代。