簡體   English   中英

我可以返回列表的單個元素作為列表嗎?

[英]Can I return a single element of a list, as a list?

我有想要從中返回特定元素的列表,但將其維護為列表,即:

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'

這顯然是偽的,但顯示了一般流程。 首先,我以這種方式編寫了代碼,以便用戶可以指定一個特定的條目或所有條目,但不能指定兩個而不是0。當前,如果我指定了target ,則for循環遍歷每個字符,而不是單個字符元件。

要直接回答您的問題,請執行以下操作:

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']

如果僅對迭代使用此列表文字感興趣,則可以簡單地使用列表文字:

for i in [inventory]:
    ...

但是我懷疑您是否需要for單循環可迭代的for循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM