Size: 951
Comment:
|
Size: 977
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 21: | Line 21: |
1 对于空tuple (), 与含有一个元素的tuple比较,cmp( (), (a)), 结果为1,即 () > (a) 为真 | 1 对于空tuple (), |
Line 23: | Line 23: |
2 对于空tuple (), 与含有2个或更多元素的tuple比较,cmp( (), (a,b)), 结果为-1,即 () < (a,b) 为真 | cmp( (), (a)), 如果 a 是含有一个原子元素的tuple, 结果为1,即 () > (a) 为真, 如果 a 是一个list, 结果也为真, |
Line 25: | Line 29: |
3 对于非空含有不同数目元素tuple之间的比较, 比较的是元素个数 | 如果 a 是一个tuple,若含有的元素多于一个,结果为假, 如仅含有一个原子元素,结果为真, |
Line 27: | Line 33: |
4 对于非空含有相同数目元素tuple之间的比较, 按照元素的字典序比较 | 如果含有一个tuple元素, 递归 ## |
Line 29: | Line 36: |
第1条的语义与2,3,4不一致!,或者可以认为对空tuple ()特殊处理。 | 对于含有更多元素的tuple间比较,嗷嗷,好像很复杂! |
Line 31: | Line 38: |
但是觉得 对于 < (or >)运算应该具有闭包关系: 命题:if a<b and b<c then a<c 应该成立 |
没看Python文档, 不清楚如何定义的. |
Line 37: | Line 40: |
这里: 取 a=(3), b = (), c= (2): 嘿嘿,a<b b<c | 看看源码? 好像对自己没什么用处尼? |
Line 40: | Line 43: |
没看Python文档, 还不清楚如何定义的. | === 讨论 === |
Line 42: | Line 45: |
一个元素的元组不是(a),而应该是(a,)。如果只是(a)那只是一个括号运算。 {{{ >>> a=(1) >>> a 1 >>> a=(1,) >>> a (1,) }}} -- Limodou |
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