[英]Removing items from unnamed lists in Python
為什么以下語句在Python中沒有返回沒有'item'
的列表?
list(something_convertible_to_list).remove('item')
?
我想使用上面的構造來避免顯式命名列表,僅用於將其傳遞給函數,即:
operate_on_list(list(something_convertible_to_list).remove('item'))
def operate_on_list(my_list):
# do_something
print my_list
return
這在Python中可行嗎?
在python中,就地操作的內置方法返回None
以使它們絕對清楚它們是否突變了一個對象。
當然,您可以自由地忽略此約定並編寫自己的包裝器:
def my_remove(lst,what):
lst.remove(what)
return lst
但我不推薦它。
作為旁注,如果你想做以下事情:
list(something_convertible_to_list).remove('item')
但是要獲取列表,以下內容可能類似於有用:
[x for x in something_iterable if x != 'item']
這確實會返回一個列表,但是list.remove
只會list.remove
1個'item'
,這將構建一個沒有'item'
的新列表。
您可以嘗試以下方式:
my_list[:my_list.index('item')]+my_list[my_list.index('item')+1:]
雖然你在這里有兩個搜索。
要么
[item for item in my_sequence if item != 'item']
第一個將刪除列表中的第一個'item'
,而第二個將刪除每個'item'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.