|
Size: 951
Comment:
|
Size: 978
Comment: 格式调整
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 19: | Line 19: |
| === 怪怪=== | === 怪怪 === |
| 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
