【问题标题】:split list by delimited in python在python中按分隔符拆分列表
【发布时间】:2016-08-17 15:28:07
【问题描述】:

从字典/列表中,如何将列表拆分为\n。例如:

In [1]: d = {'key1': 'value1\n   value2  \n value3\n'}

In [2]: d.values()
Out[2]: ['value1\n   value2  \n value3\n']

期望的输出:

['value1', 'value2  ', 'value3']

我查看了现有示例,但找不到这个特定示例。

【问题讨论】:

  • 您想要的输出显示值数组中由\n 分割的字符串,然后去除前导(但不是尾随)空格。去除空白是否重要?如果是这样,你能把它放在问题中吗?另外,您能否举一个更好的示例来说明所需的输出,例如原始字典中有多个条目时?

标签: python list split


【解决方案1】:

给你:

d['key1'].split('\n')

【讨论】:

  • 这实际上给出了['value1', ' value2 ', ' value3', ''],所以如果它是空字符串,你需要切掉最后一项。
  • 谢谢我没有意识到 d[k] 输出 str (不像 d.values() 输出列表)!!
【解决方案2】:

您的意思是您希望将值作为平面列表?像这样?

>>> {k: [x.strip() for x in v.splitlines()] for k, v in d.iteritems()}
{'key1': ['value1', 'value2', 'value3']}

【讨论】:

  • 正如 BPL 指出的那样,如果您使用 Python3,请从 iteritems 中删除 iter。为什么他重复我的答案,我不知道。
【解决方案3】:

Python 2.x

d = {'key1': 'value1\n   value2  \n value3\n'}
print {k: [x.strip() for x in v.splitlines()] for k, v in d.iteritems()}

Python 3.x

d = {'key1': 'value1\n   value2  \n value3\n'}
print({k: [x.strip() for x in v.splitlines()] for k, v in d.items()})

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 2011-06-09
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多