這種差異讓我感到困惑:>>> s = "()())()">>> print set(s)set([')', '('])>>> print {s}set(['()())()'])為什么?
3 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
set()
將一個可迭代對象作為參數,其項將是集合的元素。
因此, set('my string') 將包含我傳遞給它的可迭代對象的每個字符,即 {'m', 'y' ...}
使用{}
,您可以通過寫下每個元素來創建集合,并用逗號分隔。
{'my string'} 包含一個元素,字符串 'my string'

手掌心
TA貢獻1942條經驗 獲得超3個贊
當你寫:
set(s)
它將字符串視為可迭代對象,并創建一個包含其元素的集合。字符串的元素是單個字符。所以它相當于做:
{'(', ')', '(', ')', ')', '(', ')'}
由于集合不能包含重復元素,因此您會得到一個包含兩個唯一字符'('
和的集合')'
。
但是,當你寫:
{s}
它只是創建一個集合,其元素是變量的值。的{}
語法將每一個變量為單個元件,而不是遍歷它。
該set()
函數經常用于將一種集合轉換為一組其元素,這就是它迭代它的原因。
添加回答
舉報
0/150
提交
取消