伙计们,这是python的初学者,我刚刚观察到一件事,当我使用split('')[用空格分割元素]从字符串生成列表时,该列表上的操作(如sort)会产生混乱的结果,而不是预期的那样。请告诉我如何克服这个问题?这是我的代码
str=raw_input() #suppose i give "50 100 50" as string
var=str.split(' ') #it splits into [50,100,50]
var.sort() #now sorting command
print "Sorted var is: %r" %var #it gives [100,50,50] instead of [50,50,100]
您在这里有3个问题。
第一个,在拆分字符串后,您将获得一个字符串列表,然后按字母顺序排序,其中100个确实排在50个之前!
因此,首先您需要将字符串列表转换为整数列表,如下所示:
int_list = [int(x) for x in var]
或者,如果函数已经存在,则是我的最爱:
int_list = map(int, var)
第二个问题,与问题无关,但值得一提的是
str=raw_input()
不要将其str
用作变量名,因为它是Python中的类型,函数和类,并且通过您的赋值已将其覆盖。
最后,使用
split('')
那没有任何空格,只是一个空字符串。这种方法在Python中经过特殊处理,可以分割各种空间,例如连续的许多空间,换行,制表符等。将其与空字符串参数一起使用非常有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句