Size: 411
Comment:
|
Size: 1393
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
##language:en == python 元组比较语义怪怪 == |
##language:zh ''' python 元组理解''' [[TableOfContents]] == python 元组比较语义 怪怪 == |
Line 19: | Line 24: |
=== 怪怪=== | === 怪怪 === |
Line 21: | Line 26: |
1 对于空tuple (), 与含有一个元素的tuple比较,cmp( (), (a)), 结果为1,即 () > (a) 为真 | 1 对于空tuple (), |
Line 23: | Line 28: |
2 对于空tuple (), 与含有2个元素的tuple比较,cmp( (), (a,b)), 结果为-1,即 () < (a,b) 为真 | cmp( (), (a)), 如果 a 是含有一个原子元素的tuple, 结果为1,即 () > (a) 为真, 如果 a 是一个list, 结果也为真, |
Line 25: | Line 34: |
3 | 如果 a 是一个tuple,若含有的元素多于一个,结果为假, 如仅含有一个原子元素,结果为真, 如果含有一个tuple元素, 递归 ## |
Line 27: | Line 40: |
对于含有更多元素的tuple间比较,嗷嗷,好像很复杂! 没看Python文档, 不清楚如何定义的. 看看源码? 好像对自己没什么用处尼? === 讨论 === 一个元素的元组不是(a),而应该是(a,)。如果只是(a)那只是一个括号运算。 {{{ >>> a=(1) >>> a 1 >>> a=(1,) >>> a (1,) }}} -- Limodou "()"是元组 {{{ >>> type(()) <type 'tuple'> >>> }}} 元祖的比较: 先按长度比较,长度相同是再按内容比较. (我也没看参考, 猜测应该是这样) -- Hoxide 是按tuple中每个元素进行比较的,不是先比较长度的,如: {{{ (2,) > (1,2) True }}} 与长度无关。 -- Limodou |
python 元组理解
python 元组比较语义 怪怪
Example
怪怪
1 对于空tuple (),
- cmp( (), (a)),
如果 a 是含有一个原子元素的tuple, 结果为1,即 () > (a) 为真, 如果 a 是一个list, 结果也为真, 如果 a 是一个tuple,若含有的元素多于一个,结果为假,
- 如仅含有一个原子元素,结果为真, 如果含有一个tuple元素, 递归 ##
对于含有更多元素的tuple间比较,嗷嗷,好像很复杂!
没看Python文档, 不清楚如何定义的.
看看源码? 好像对自己没什么用处尼?
讨论
一个元素的元组不是(a),而应该是(a,)。如果只是(a)那只是一个括号运算。
>>> a=(1) >>> a 1 >>> a=(1,) >>> a (1,)
- -- Limodou
"()"是元组
>>> type(()) <type 'tuple'> >>>
元祖的比较: 先按长度比较,长度相同是再按内容比较. (我也没看参考, 猜测应该是这样)
- -- Hoxide
是按tuple中每个元素进行比较的,不是先比较长度的,如:
(2,) > (1,2) True
与长度无关。
- -- Limodou