【问题标题】:max and Min functions issue In PythonPython中的max和Min函数问题
【发布时间】:2019-11-06 15:16:07
【问题描述】:
>>> d="programing"
>>> min(d)
'a'
>>> d="123456Ed"
>>> min(d)
'1'
>>> max(d)
'd'

为什么 max 函数返回 d 而 E 是该字符串中的最高字符。

>>> e="123456eeE"
>>> min(e)
'1'

这里为什么 min 函数返回 1 而 e 是字符串中的最小字符。

【问题讨论】:

  • 你为什么认为'e' < '1''d' < 'E'
  • 啊,字符串中的位置不重要。

标签: python python-3.x


【解决方案1】:

'E' < 'd' 因为大写字母在 ASCII 表中排在第一位。

https://en.wikipedia.org/wiki/ASCII

【讨论】:

  • 严格来说,重要的是 Unicode;不过,前 128 个代码点对应于 ASCII。
【解决方案2】:

当您在字符串上使用 min() 时,它会自动返回最接近字母表开头的字符,该字符以特殊字符开头,然后是数字,然后是字母。它基于找到的 ASCII 表 Here

【讨论】:

    【解决方案3】:

    min()max() 使用比较它们之间的元素;如果是字符/字符串,则使用 Unicode 值。

    您的示例字符串'123456eeE' 中某些字符的数值是(使用内置函数ord()):

    >>> ord('1')
    49
    >>> ord('e')
    101
    >>> ord('E')
    69
    

    所以这里并不奇怪:

    >>> min('123456eeE')
    '1'
    >>> max('123456eeE')
    'e'
    

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2010-12-10
      相关资源
      最近更新 更多