当前位置: 首页 > 知识库问答 >
问题:

在Python中,如何接收字符串文本并返回包含字符串列表的列表?

邹铭
2023-03-14

此函数接收字符串文本,并返回一个包含字符串列表的列表,字符串文本中的每个句子都有一个列表。

句子由一个字符串“.”分隔, "?",或者“!”.我们忽略了其他标点分隔句子的可能性。所以‘X先生’会变成2句,‘不要’是两个字。

例如,文本是

Hello, Jack.  How is it going?  Not bad; pretty good, actually...  Very very
good, in fact.

函数返回:

 ['hello', 'jack'],
 ['how', 'is', 'it', 'going'],
 ['not', 'bad', 'pretty', 'good', 'actually'],
 ['very', 'very', 'good', 'in', 'fact']]

最令人困惑的部分是如何使函数检测字符?以及如何使其成为每个句子中包含单词的列表。非常感谢。

共有2个答案

庞旺
2023-03-14

您可以使用re。split()

>>> s="Hello, Jack.  How is it going?  Not bad; pretty good, actually...  Very very good, in fact."
>>> import re
>>> [re.split(r'\W',i) for i in re.split(r'\.|\?|\!',s) if len(i)]

对于删除空索引,您可以这样做:

>>> [[x for x in i if len(x)]for i in my_s]
[['Hello', 'Jack'], ['How', 'is', 'it', 'going'], ['Not', 'bad', 'pretty', 'good', 'actually'], ['Very', 'very', 'good', 'in', 'fact']]
商同
2023-03-14

对我来说,这听起来很像一个家庭作业问题,所以我将提供一般提示,而不是精确的代码。

字符串上有拆分(char)函数。您可以使用它根据特定字符拆分字符串。但是,您必须使用循环并多次执行拆分。

您还可以使用正则表达式来查找匹配项(这将是一个更好的解决方案)。这将使您一次找到所有匹配项。然后,您将遍历匹配项并根据空格吐出它们,同时去除标点符号。

编辑:这里有一个正则表达式的例子,你可以用它一次得到所有的句子组:

\s*([^.?!]+)\s*

括号周围的\s*会导致从结果中删除任何多余的空格,括号是一个捕获组。你可以使用re。findall()获取所有捕获结果的列表,然后可以循环这些项并使用re。split()和一些条件逻辑将所有单词附加到新列表中。

让我知道你是如何处理的,如果你有任何其他问题,请向我们提供你目前拥有的代码。

 类似资料:
  • 问题内容: 在Java中,我想检查中是否存在字符串。 像这样: 问题是myList可以包含未修剪的数据: 如果我的项目在列表中,我希望它返回true 。我应该怎么做?我想避免循环结构。 问题答案: 您需要迭代列表并致电进行搜索: 或者,如果要执行 忽略大小写搜索 ,请使用:

  • 两行的一个例子是:([a,b,c],d)和([d,e],a)我想把这些行转换成([a,b,c],[d,e])和([d,e],[a,b,c]) dataframe的列名是“src”和“dst”。 我如何处理这个问题?

  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 问题内容: 我尝试将Jersey中的字符串列表作为JSON和XML返回。我认为这将是微不足道的。 我的第一次尝试是写这样的东西 而且我期望输出与此类似:[“ string1”,…,“ stringN]不幸的是,我得到了这个: 然后我为列表写了一个包装StringString 并将外观修改为 这对于包含超过1个项目的列表非常有用。 不幸的是,对于一个或零个元素,我得到了两个意外的结果 我做错什么了吗

  • 问题内容: 有没有这将是一个组合的等同的任何功能和? 例如,假设我有系列 ,并且我想找到s包含的任何一个的所有地方,那么我想得到除“宠物”以外的所有东西。 我有一个解决方案,但这很不雅致: 有一个更好的方法吗? 问题答案: 一种选择是仅使用正则表达式|字符尝试匹配系列中单词中的每个子字符串s(仍使用)。 你可以通过将单词与结合在一起来构造正则表达式|: 就像在下面的注释中指出的那样,请注意你的子字

  • 主要内容:Python字符串和数字的拼接在 Python 中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" "str2" strname 表示拼接以后的字符串变量名,str1 和 str2 是要拼接的字符串内容。使用这种写法,Python 会自动将两个字符串拼接在一起。 【示例】以连续书写的形式拼接字符串: 运行结果: Python教程https://www.xnip.cn/