【问题标题】:How to convert this string into a list in python如何将此字符串转换为python中的列表
【发布时间】:2021-01-25 02:20:44
【问题描述】:

我有以下代码:

import re
codes = re.compile(r"\((\d+)\)")
for code in Fixed:
    co_codes = ' '.join(codes.findall(code))
    print(co_codes)

这给了我以下字符串:

04344
044
04344

我试图将所有元素放在一个列表中,如下所示:

co_codes = [04344, 044, 04344] 

我该怎么做。

请注意,几乎有 10000 个数字,而不仅仅是三个

notebook code

【问题讨论】:

  • 这能回答你的问题吗? Converting a string into a list in Python
  • 不,实际上它就像它只看到第一个元素,当我尝试 .split() 时它只给出:['04344'] 而没有别的
  • 当你检查类型时它说它是字符串

标签: python list filter


【解决方案1】:

您可能正在寻找splitlines 方法。

>>> s = '''04344
... 044
... 04344'''
>>> s.splitlines()
['04344', '044', '04344']

【讨论】:

  • 我试过它只看到第一个元素 04344 即使你尝试 s[1] 你得到:列表索引超出范围它只给出:04344 作为 s[0] 的输出
  • @AbdalmalekAburaddaha 那么您的输入与您声称的不同。
【解决方案2】:

您可以使用这样的列表理解一次性生成一个列表:

import re

codes = re.compile(r"\((\d+)\)")
co_codes = [ ''.join(codes.findall(code)) for code in Fixed ]

它会给你一个包含所有字符串输出的列表

【讨论】:

  • 没想到终于成功了谢谢
  • 如果您只需要生成列表而不是在字符串中连接代码,您需要像这样使用:co_codes = [ c for c in codes.findall(code) for code in Fixed ]
【解决方案3】:

这听起来像一个简单的.split() 可以工作:

a = """04344
044
04344"""
a.split()

【讨论】:

  • 不,我以不同的方式尝试了很多次它没有工作....下面的答案成功了谢谢
猜你喜欢
  • 2020-10-10
  • 2019-10-21
  • 2021-11-18
  • 1970-01-01
  • 2013-02-28
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多