【问题标题】:How to split a list of a giant single string into seperate substrings如何将一个巨大的单个字符串列表拆分为单独的子字符串
【发布时间】:2017-02-14 03:22:00
【问题描述】:

所以我有一个包含 3 个大字符串的列表,例如:

lst=['Mary,had,"3",little-lambs','Mary,sold-her,"3",lambs,away','Mary,was,sad']

该列表有巨大的字符串,但我想将这些字符串拆分为列表中单独的小字符串(所以对于我想要的第一个:

ls=['Mary','had','3','little','lambs'] 

等等。我试过了

.split

但它不起作用,因为它是一个列表,而且是一个字符串方法。我需要一个完全非pythonic的方式。 (另外,如果有人可以帮助下一步,我会尝试将最后一个值(在这种情况下,lambs,away,sad 放入字典中作为 mary. 比如像:

dictionary={"lambs": "Mary","away":"Mary","sad":"Mary"}

因为稍后我需要向 Mary 指出(值),并且与 Mary 关联的所有键都应该弹出。如果有人可以提供帮助,将不胜感激,我真的被困住了,任何帮助都应该是完全非 Python 的。

编辑:我使用了一个 for 循环并拆分每个内容并将其附加到一个新列表中,但结果会创建一个字符串列表的列表

lst1=[]
for item in lst:
    item=item.split(",")
    lst1.append(item)
print(content)
print(lst1)

lst1=[['Mary','had','3','little','lambs']]

我试图避免在另一个列表中创建一个列表,因为我不知道如何索引它的每个部分来创建我之前提到的字典

【问题讨论】:

  • 您可以遍历列表并为每个字符串应用 .split。
  • 为什么需要一种完全非 Python 的方式?
  • 它必须是非pythonic,因为我们现在只做简单的编码(我正在介绍comp sci)
  • 请别人做作业是避免学习任何东西的可靠方法。请查看您的课程材料并做好自己的工作。
  • 我投票决定将此问题作为离题结束,因为 SO 不是作业抄袭服务。

标签: python string list


【解决方案1】:

只需在上述答案中使用re.split()

import re
last_keys = dict()
for item in lst:
     tokens = re.split('-|,',item)
     last_keys[tokens[-1]] = "Mary"

last_keys
{'lambs': 'Mary', 'away': 'Mary', 'sad': 'Mary'}

【讨论】:

    【解决方案2】:

    编辑:将拆分更改为 re.split,包括专门针对“,”和“-”字符的正则表达式。应修改以匹配必要的分隔符。 这将为您提供所需的字典。您可以将tokens 附加到单独的列表中,以获取每个字符串的各个单词的列表。

    import re
    last_keys = dict()
    for item in lst:
        tokens = re.split(r',|\-', item)
        last_keys[tokens[-1]] = "Mary"
    

    【讨论】:

    • 这不会分离出“小羊羔”。
    • @vendaTrout 你是对的。添加了 re.split() 代替。谢谢!
    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多