在python中将文本转换为一串字母?

2024-06-09 07:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图制作一段if代码,它可以接受一个字符串,忽略其中的所有纯文本,并返回一个数字列表,但我遇到了麻烦。你知道吗

基本上,我想变成“晚餐我想吃两片披萨,然后吃一勺冰淇淋” 进入[2,1](只是一个例子)

    dummy = dummy.split(" ")
                    j = 0
                    for i in dummy:
                        dummy[j]=i.rstrip("\D")
                        j+=1
                        print(dummy[j-1])

是我尝试过的,但没有消除任何东西。我尝试了rstrip(“\D”),因为我认为它应该删除文本,但似乎不适用于列表。你知道吗

你知道我哪里出错了吗?或者有什么方法可以解决这个问题?你知道吗


Tags: 字符串代码in文本列表forif数字
3条回答

您可以使用re.split来实现这一点(与您发布的代码大致相同,正如TigerhawkT3所观察到的那样,您似乎将正则表达式与字符串混合在一起),但更适合您的是re.findall。再加上调用int将数字字符串转换为实际整数就可以了。你知道吗

这听起来像是课堂作业,所以试试这个:

  1. 使用结构拆分把句子分成几个词。你知道吗
  2. 使用街道数字确定哪些单词都是数字。你知道吗
  3. 使用int()将仅限数字的字转换为整数。你知道吗
  4. 返回列表。你知道吗

可以使用正则表达式执行此操作:

import re

string = "I want to eat 12 slices of pizza for dinner, and then 1 scoop of ice cream for desert"
numbers = list(map(int, re.findall(r"\d+", string)))
print(numbers)
#[12, 1]

但是str.rstrip()方法不使用正则表达式,所以这就是为什么你的方法不起作用的原因。你知道吗

相关问题 更多 >