免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5937 | 回复: 9
打印 上一主题 下一主题

max及min函数异常求教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-05 18:30 |只看该作者 |倒序浏览

  1. >>> dlist=['95', '97', '100', '110', '93', '102', '92', '95', '92', '89', '89', '88', '90', '86', '88', '94', '96', '87', '85', '82', '85', '85', '84', '83', '90', '93', '80', '84', '82', '84', '82', '81', '88', '87', '84', '85', '84', '87', '85', '100', '85', '87', '91', '82', '101', '99', '98', '96', '97', '94', '94', '90', '92', '94', '92', '96', '105', '96', '101', '93', '95', '98', '101', '116', '85', '102', '103', '101', '93', '96', '99', '99', '119', '100', '101', '143', '95', '102', '94', '98', '104', '107', '97', '100', '110', '94', '90', '92', '88', '101', '104', '94', '113', '103', '90', '102', '106', '110', '121', '103', '94', '90', '95', '101', '97', '93', '110', '115', '150', '104', '107', '108', '100', '97', '125', '103', '96', '95', '95', '98', '110', '114', '98', '104', '124', '126', '103', '128', '96', '112', '100', '112', '111', '115', '132', '98', '99', '118', '106', '110', '97', '114', '101', '106', '101', '100', '95', '102', '95', '89', '107', '88', '105', '93', '91', '91', '95', '90', '84', '87', '91', '94', '88', '90', '91', '86', '81', '83', '92', '86', '86', '84', '84', '88', '85', '86', '87', '107', '88', '82', '86', '85', '85', '87', '85', '89', '86', '88', '91', '89', '91', '92', '89', '101', '100', '101', '92', '102', '103', '92', '108', '90', '89', '114', '96', '103', '96', '104', '97', '118', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '21', '101', '92', '103', '101', '111', '114', '103', '101', '101', '99', '87', '92', '92', '102', '101', '98', '99', '94', '107', '88', '91', '96']
  2. >>> max(dlist)
  3. '99'
  4. >>> min(dlist)
  5. '100'
复制代码

明明最大的不是99,而最小的也不是100, 为何出这样的错.

[ 本帖最后由 caesarok 于 2009-4-5 18:48 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-04-05 19:17 |只看该作者
这个正确呀
字符串的比较

论坛徽章:
0
3 [报告]
发表于 2009-04-05 19:24 |只看该作者
那我怎么把他们按数值大小进行比较呢

我得出的其他列表却正确的.而这个就出这样的错了,
麻烦指教!

[ 本帖最后由 caesarok 于 2009-4-5 19:32 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-04-05 19:28 |只看该作者
把dlist列表的字符串元素转换为数字
dlist = [95, 100, 101]
max(dlist)

论坛徽章:
0
5 [报告]
发表于 2009-04-05 19:28 |只看该作者
注意:字符串和数字的区别

论坛徽章:
0
6 [报告]
发表于 2009-04-05 19:34 |只看该作者
我这里有个长的代码,

  1. #!/usr/bin/env python
  2. #-*-coding:gbk
  3. from urllib import urlretrieve


  4. def searchd(g,machine):
  5.     import re
  6.     try:
  7.         dlist=[]
  8.         fg=open(g,"r")
  9.         for i in fg:
  10.             i=i.strip()
  11.             dlist += re.findall(r'\d+$', i)
  12.         print 'dlist内容%s \n 最后一个%s 第一个%s'%(dlist,dlist[len(dlist)-1],dlist[0])
  13.         f=open("log.txt","a+")
  14.         print '处理2 %s'%machine
  15.         f.write('\n%s '%machine)
  16.         avg=sum([int(i) for i in dlist])/len(dlist)
  17.         f.write('平均值avg: %s '%avg)
  18.         maxd=max(dlist)
  19.         f.write("最大值:  %s "%maxd)
  20.         mind=min(dlist)
  21.         f.write("最小值:  %s "%mind)
  22.         last=dlist[len(dlist)-1]
  23.         f.write("最后值:  %s "%last)
  24.         f.close()
  25.         fg.close()
  26.     except (IOError,ZeroDivisionError),args:
  27.         print '%s%s不存在'%(args,machine)
  28.        

  29.             

  30. def firstLast(webpage,machine):
  31.     try:
  32.         f = open(webpage)
  33.         lines = f.readlines()
  34.         f.close()
  35.         g="page.txt"
  36.         file1=open(g,"w+")
  37.         file1.writelines(lines)
  38.         file1.close()
  39.         searchd(g,machine)
  40.     except IOError,args:
  41.        print args
  42.        pass
  43.       

  44. #url='http://192.168.1.161/monitor/is13084905-0112/net.txt'
  45. #for i in file("machine.txt"):
  46.    #download('http://192.168.1.161/monitor/%s/net.txt'%i)
  47. def download(url,machine,process=firstLast):
  48.     try:
  49.         retval = urlretrieve(url)[0]
  50.         print '处理1 %s'%machine
  51.     except IOError:
  52.         retval = None
  53.         pass
  54.     if retval:                # do some processing
  55.         process(retval,machine)


  56. def tryk():
  57.      g=file("t1.txt")
  58.      f=g.readlines()
  59.      for i in f:
  60.          machine=i.strip()
  61.          url='http://192.168.1.161/monitor/%s/net.txt'%machine
  62.          print machine
  63.              download(url,machine)
  64.          
  65.        
  66. if __name__ == '__main__':
  67.     tryk()
  68.              
复制代码


page.txt内容为
2009-04-04  0:02:39.15    net static
-----------------------------------------------
2009-04-04  0:05:04.75 TCP Connections:    95
2009-04-04  0:15:04.75 TCP Connections:    97
2009-04-04  0:25:04.90 TCP Connections:    100
2009-04-04  0:35:04.75 TCP Connections:    110
2009-04-04  0:45:04.73 TCP Connections:    93
2009-04-04  0:55:04.76 TCP Connections:    102
2009-04-04  1:05:04.76 TCP Connections:    92
2009-04-04  1:15:04.75 TCP Connections:    95
2009-04-04  1:25:04.75 TCP Connections:    92
2009-04-04  1:35:04.71 TCP Connections:    89
2009-04-04  1:45:04.76 TCP Connections:    89
2009-04-04  1:55:04.78 TCP Connections:    88
如果改成数值应怎么改呀

[ 本帖最后由 caesarok 于 2009-4-5 19:41 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-04-05 19:39 |只看该作者
加上一句:

  1. for i in range(len(dlist)):
  2.     dlist[i] = int(dlist[i])
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-04-05 19:47 |只看该作者
太感谢了,问题解决了!
看能不能再帮我优化一下代码

[ 本帖最后由 caesarok 于 2009-4-5 19:57 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-04-05 20:11 |只看该作者
加一句: dlist=[int(x) for x in dlist]
把字符型转换为数字型

论坛徽章:
0
10 [报告]
发表于 2009-04-06 10:38 |只看该作者
dist=map(int,dist)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP