从python中的字符串生成的列表

Navkant柳枝

伙计们,这是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章