亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么追加在此代碼中不返回任何內容?

為什么追加在此代碼中不返回任何內容?

達令說 2019-05-31 11:19:28
為什么追加在此代碼中不返回任何內容?list = [1, 2, 3]print list.append(4)   ## NO, does not work, append() returns None## Correct pattern:list.append(4)print list  ## [1, 2, 3, 4]我正在學習Python,我不確定這個問題是否是特定于該語言的,以及如何在Python中實現追加。
查看完整描述

4 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

append是一個變異(破壞性)操作(它在適當的位置修改列表,而不是返回新列表)。做非破壞性等效物的慣用方法append會是

l = [1,2,3]print l + [4] # [1,2,3,4]print l # [1,2,3]

回答你的問題,我猜如果append返回新修改的列表,用戶可能會認為它是非破壞性的(他們可能會編寫類似的代碼)。

m = l.append("a")n = l.append("b")

期待n成為[1,2,3,"b"]


查看完整回答
反對 回復 2019-05-31
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

在Python中,變異序列返回的方法是一種慣例。None.

考慮:

>>> a_list = [3, 2, 1]>>> print a_list.sort()None>>> a_list[1, 2, 3]>>> a_dict = {}>>> print a_dict.__setitem__('a', 1)
None>>> a_dict{'a': 1}>>> a_set = set()>>> print a_set.add(1)None>>> a_set
set([1])

從Python3.3開始,現在更多明確記錄:

有些集合類是可變的。添加、減除或重新排列其成員位置的方法,而不返回特定項的方法,永遠不會返回集合實例本身,但是None.

設計與歷史常見問題給出推理這項設計決定的背后(關于清單):

為什么不list.sort()返回排序列表?

在性能重要的情況下,只為排序而復制列表將是浪費的。因此,list.sort()對列表進行排序。為了提醒您這個事實,它不返回排序列表。這樣,當您需要排序的副本時,您不會被不小心地覆蓋列表,但也需要保留未排序的版本。

在Python2.4中,一個新的內置函數-sorted()-增加。此函數根據提供的可迭代性創建一個新列表,對其進行排序并返回它。


查看完整回答
反對 回復 2019-05-31
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

它什么也不回。它將/Add添加到變量中,以查看您應該使用用于在打印中追加的第一個變量

friends=["Rajendra V"]friends.append("John")print(friends)


查看完整回答
反對 回復 2019-05-31
  • 4 回答
  • 0 關注
  • 490 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號