【问题标题】:Taking a specific character in the string for a list of strings in python将字符串中的特定字符用于python中的字符串列表
【发布时间】:2018-12-21 02:36:04
【问题描述】:

我有一个包含 22000 个字符串的列表,例如 abc.wav 。我想从 python 中取出一个特定的字符,就像所有文件中 .wav 之前的字符一样。如何在 python 中做到这一点?

【问题讨论】:

  • df['file'].str.split('.').str[0] ?
  • 查看 .split()
  • 嗨!欢迎来到堆栈溢出。您可能已经注意到您的第一篇文章得到了一些反对意见 - 不用担心。几乎每个人第一次发帖时都会遇到这种情况,但是随着您的学习,您会变得更好。我可以从这篇文章中看到两个问题,第一个是您没有进行任何研究(正如@dfundako 指出的那样)。您是否在网上寻找问题的解决方案?如果是这样,您在哪里查看过,为什么这些解决方案对您不起作用?
  • 我能看到的第二个问题是很难准确理解你想要什么。添加一些“这是我的输入”和“这是我想要的输出”的示例可以帮助这里的人们弄清楚你在寻找什么。

标签: python pandas numpy


【解决方案1】:

找到一个字符的位置可以是.split(),但是如果你想在一个字符串中提取一个特定的位置,你可以使用list[stringNum[letterNum]]。然后 list[stringNum].split("a") 将得到两个或多个单独的字符串,它们位于字母“a”的另一侧。使用这些字符串,您可以通过测量字符串的长度与 a 之外的字符串长度来获得点,并比较这些点的位置。只是一个简单的算法想法ig。你必须玩弄它。

【讨论】:

    【解决方案2】:

    我假设您正在尝试重建相同的字符串,但扩展名之前没有字母。

    resultList = []
    for item in list:
        newstr = item.split('.')[0]
        extstr = item.split('.')[1]
        locstr = newstr[:-1] <--- change the selection here depending on the char you want to remove
        endstr = locstr + extstr
        resultList.append(endstr)
    

    如果您只想保存您删除的字母列表,请执行以下操作:

    resultList = []
    for item in list:
        newstr = item.split('.')[0]
        endstr = newstr[-1]
        resultList.append(endstr)
    

    【讨论】:

      【解决方案3】:
      df= pd.DataFrame({'something':['asb.wav','xyz.wav']})
      df.something.str.extract("(\w*)(.wav$)",expand=True)
      

      给予:

          0   1
      0   asb .wav
      1   xyz .wav
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-04
        • 1970-01-01
        • 2020-06-02
        相关资源
        最近更新 更多