集合和列表在Python中的處理方式不同,似乎沒有統一的方式來處理這兩者。例如,使用add
方法將項目添加到set
,對於list
使用append
方法完成項目。我意識到這背後有不同的語義,但是那裏也有通用的語義,並且通常有一種算法可以處理一些關於共性的關注,而不是差異。 C++ STL表明這可以工作,爲什麼Python中沒有這樣的概念?爲什麼在Python中不能統一處理集合?
編輯:在C++中我可以使用output_iterator
存儲在採集的(幾乎)任意類型,包括列表和集合的值。我可以編寫一個算法,將這樣一個迭代器作爲參數並將元素寫入它。該算法對於支持迭代器的容器(或其他設備,可能是文件)完全不可知。如果支持容器是一個忽略重複的集合,那麼這是調用者的決定。我的具體問題是,它現在已經發生好幾次了,例如我爲某個任務使用了list
,後來決定set
更合適。現在我必須在我的代碼中的幾個地方將append
更改爲add
。我只是想知道爲什麼Python對這種情況沒有概念。
「集合和列表在Python中的處理方式不同」,因爲它們本質上**不同。它們不能被製成「統一的」,因爲 - 它們與浮點和文件不同。 「我知道有不同的語義」。好的。你在問什麼?特別?你能否提供你想要的更詳細的例子? – 2010-09-14 10:27:00
@ S.Lott:我添加了一個示例和一些說明。 – 2010-09-14 10:53:11
「一組忽略重複」?什麼?那是什麼?集合 - 按定義 - 不能有重複。我不明白你在問什麼。 – 2010-09-14 13:32:11