我想将字符串列表转换为数字列表,但没有成功
我的字符串是这样的
x=[u'9-9', u'-5-5',u'-45-45',u'99-99']
我想把它转换成:
x=[9,-5,-45,99]
我尝试在列表中循环并在列表中的每个字符串中使用 string.replace('-','')
替换'-'以删除'-'并除以数字分为 2 步,但字符串保留有字符 '-' 替换不起作用
我的一些代码:
import string
x=[u'9-9', u'-5-5',u'-45-45',u'99-99']
for i in x:
string.replace(str(i),"-",' ')
print i
输出:
9-9
-5-5
-45-45
99-99
有什么帮助吗?
最佳答案
正如指出的那样,python 中的字符串是不可变的。对它们的操作返回新字符串而不是更改原始字符串。您的输出要求也是一个整数列表,因此您必须解析字符串:
In [1]: x=[u'9-9', u'-5-5',u'-45-45',u'99-99']
In [2]: [int(i.rsplit('-', 1)[0]) for i in x]
Out[2]: [9, -5, -45, 99]
使用 list comprehension字符串是 split starting from right 1 次仅使用 '-'
作为分隔符,第一个字符串被提取并解析为整数。
关于python - 从字符串列表中选择数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985950/