python - 从字符串列表中选择数字

标签 python string list python-2.7 replace

我想将字符串列表转换为数字列表,但没有成功

我的字符串是这样的

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/

相关文章:

python - 使用 lxml.html 提取文本

python - 在处理 python 列表分配时最小化内存消耗

c - 双核字数统计速度慢

Java Jsoup 打印 For 循环

python Qt4 如何绑定(bind)按钮单击操作

Javascript 不正确的 header 检查解压缩 Python 生成的 zlib 缓冲区

c++ - 将短字符串转换为 32 位整数的最有效方法是什么?

Python:根据*实际*长度填充字符串

java - 嵌套的 POJO 列表流到另一个 POJO 列表

python - 更改Python列表中的日期时间格式