python:元組和小括弧的誤導

來源:互聯網
上載者:User

標籤:python   元組   字典   小括弧   

書上說元組就是被包含在小括弧裡面,不能被修改。列表是包含在中括弧裡面,可以被修改。

列表中可以嵌套列表,元組中可以嵌套元組,一般沒人混用,這點測試無誤:

>>> aa[0](12, 34)>>> aa[0]=(1,2)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment>>> aa[0][0]12>>> aa[0][0]=34Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment

然而,在畫圖過程中使用了字典,無意中修改了“元組”的值:

>>> pos = {0: (20, 20), 1: (20, 40), 2: (40, 40), 3: (40, 20), 4: (30, 30)}>>> pos{0: (20, 20), 1: (20, 40), 2: (40, 40), 3: (40, 20), 4: (30, 30)}>>> pos[0]=(1,2)>>> pos{0: (1, 2), 1: (20, 40), 2: (40, 40), 3: (40, 20), 4: (30, 30)}>>>
然後在參考手冊的dict搜尋發現了這個:


>>> a = dict(one=1, two=2, three=3)>>> b = {'one': 1, 'two': 2, 'three': 3}>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))>>> d = dict([('two', 2), ('one', 1), ('three', 3)])>>> e = dict({'three': 3, 'one': 1, 'two': 2})>>> a == b == c == d == eTrue

也就是說,在字典中value值無論用小括弧、中括弧、大括弧括起來,它的值都可以被修改。

另一個誤導是參考python中元組和小括弧的關係,即元組是由逗號決定的,不是小括弧。可以看到,即便沒有了小括弧,還是元組。

>>>a=("one","two")>>>a[0]'one'>>>b=("one")>>>b[0]'o'>>>c=("one",)>>>c[0]'one'>>>d="one",>>>d[0]one

著作權聲明:歡迎轉載,轉載請註明出處http://blog.csdn.net/ztf312/

python:元組和小括弧的誤導

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.