【问题标题】:Splitting each string in a list at spaces in Python [duplicate]在Python中的空格处拆分列表中的每个字符串[重复]
【发布时间】:2012-12-10 20:22:30
【问题描述】:

我有一个列表,其中包含一个 url 和 Python 中一个大列表的每个项目中的一些文本。每次出现空格时,我想将每个项目分成几个项目(每个项目 2-3 个空格)。没有太多代码要发布,它只是一个存储在命名变量中的列表。我尝试过使用 split 功能,但我似乎无法正确使用它。任何帮助将不胜感激!

【问题讨论】:

  • 发布您当前的代码。它至少表明您已经为自己解决了一些问题,并且通过文本描述的示例更容易看到您的数据结构。
  • 什么分割不正确 - 让我们看看你的代码和数据和错误
  • 我不太确定您的输入是什么。它是列表的列表吗?字符串列表?只需包含一个示例列表,例如input_list = [...],就会对你们中的很多人有所帮助。
  • 除了发布当前代码(这总是一个好的开始),还要发布输入和所需的输出。由于有当前代码(轻推、轻推),还酌情提供任何不正确的输出。
  • 答案不应该存在。它允许 OP 做他可能不理解的事情。

标签: python list url split


【解决方案1】:

很难知道您要的是什么,但我会试一试。

>>> a = ['this is', 'a', 'list with  spaces']
>>> [words for segments in a for words in segments.split()]
['this', 'is', 'a', 'list', 'with', 'spaces']

【讨论】:

  • 可能值得解释一下list comprehension 是什么。
  • @Lattyware,你是对的,感谢您添加链接。这也不是最简单的例子——我花了好几次才把它弄好。
  • 多循环总是很有趣。我可能会自己使用itertools.chain.from_iterable() 来避免它。
【解决方案2】:

你可以试试这样的:

>>> items = ['foo bar', 'baz', 'bak foo bar']
>>> new_items = []
>>> for item in items:
...     new_items.extend(item.split())
...
>>> new_items
['foo', 'bar', 'baz', 'bak', 'foo', 'bar']

【讨论】:

  • 供参考 - 使用from itertools import chain; list(chain.from_iterable(el.split() for el in items)) 更容易编写
猜你喜欢
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
相关资源
最近更新 更多