【问题标题】:Using Python Split and Strip Commands to reorder sting使用 Python Split 和 Strip 命令重新排序 sting
【发布时间】:2021-11-03 18:39:24
【问题描述】:

我有字符串:

aaa = "09/22/81, John, Paycheck ,Lawrence, Kansas, 556 :23:7895"

我想使用 Python 的 Split 和 Strip 命令对列表进行重新排序,以便列表输出:

Month,Day,Year, FirstName, LastName, City, State, first3socialsecurity, middle2socialsecurity, last4socialsecurity

基本上没有任何前导或尾随空格,只需使用这些方法重新排序字符串即可。

【问题讨论】:

  • 欢迎来到 SO!你试过什么了?我们在这里更多地帮助解决“我尝试了 X,但它没有达到我的预期,而是导致错误!”形式的特定问题。伴随着Minimal, Complete, and Verifiable example
  • ''.join(map(str.strip, aaa.split())) 但以后,,在您的问题中添加一个尝试,谢谢!
  • 为什么要使用splitstripaaa.replace(' ', '') 应该够了吧?
  • @mozway 单个值可能在中间包含空格。
  • 看起来您添加了您的尝试作为您随后删除的答案。如果您想添加更多详细信息,您应该edit您的问题。还记得问一个具体的问题。您的方法如何未能满足您的期望?问正确的问题是research 的第一步,你必须在 SO 上的asking 之前做,如果你找不到答案,记得问那个具体的问题!

标签: python split strip


【解决方案1】:

我会使用re.split 来完成这项任务,因为这样可以提供更大的灵活性:

仅使用逗号作为最终分隔符

import re
','.join(map(str.strip, re.split('[,:]', aaa)))

输出:'09/22/81,John,Pay Check,Lawrence,Kansas,556,23,7895'

保留原来的分隔符

import re
''.join(map(str.strip, re.split('([,:])', aaa)))

输出:'09/22/81,John,Pay Check,Lawrence,Kansas,556:23:7895'

使用的输入:aaa = "09/22/81, John, Pay Check ,Lawrence, Kansas, 556 :23:7895"

【讨论】:

    【解决方案2】:

    split() 方法不是特别适合这个用例,因为有多个分隔符,split() 只接受一个分隔符。 re.split() 会更好。但可以使用split() 通过替换所有备用分隔符并对其进行规范化来完成,只要您不希望这些备用分隔符在其他数据值中用作有效字符。

    data = "09/22/81,   John,  Paycheck  ,Lawrence,  Kansas,  556  :23:7895"
    
    # Normalize to use a single delimiter -- , (comma)
    normalized_data = data.replace("/", ",").replace(":", ",")
    
    # Split on normalized delimiter and remove leading and trailing whitespace
    values = [s.strip() for s in normalized_data.split(",")]
    
    # Output new values delimited with a comma
    print(",".join(values))
    

    这也可以在一个单行中完成

    print(",".join([s.strip() for s in data.replace("/", ",").replace(":", ",").split(",")]))
    

    【讨论】:

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