【问题标题】:How to remove spaces from string and slice the string into multiple chunks of fixed length如何从字符串中删除空格并将字符串切成多个固定长度的块
【发布时间】:2015-12-13 20:47:19
【问题描述】:

我有一个字符串需要处理:

  1. 删除所有空格
  2. 将生成的字符串分组为 5 个字符

目前我有:

new = ''
sym = " !#$%^&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~"""
gap = []
for char in text:
    if char in sym or char in gap:
        sym += char
result = []

有人知道怎么做吗?

【问题讨论】:

  • 你能格式化代码吗?
  • 你说的5种块是什么意思?
  • 所以就像结果是这样的 SAMPLE SAMPLE SAMPLE
  • 字符串中的每个字母或数字需要以5字长保存
  • 那么您在哪一部分遇到了问题,删除空格或分成 5 个一组?您发布的代码与该问题有什么关系,因为它甚至没有尝试执行任何一项任务?

标签: python


【解决方案1】:

您的问题措辞确实令人困惑,但是如果您想从字符串中删除所有空格,可以使用替换:

name = "Foo Bar"
name = name.replace(" ","")

print(name) 
# Output: "FooBar"

【讨论】:

  • 但它需要重新排列,以便字符串中删除空格的每个字母都保存在 5 字长中
  • 从字符串中删除空格后,您可以使用此用户发布的解决方案将其拆分为 5 的长度:stackoverflow.com/questions/13673060/…
【解决方案2】:

我假设你的字符串是 sym 和

  1. 您想删除sym 中的所有空格
  2. 制作一个长度为 5 的单词(字符串)的块(列表)。

Python 代码分步:

In [1]: sym = " !#$%^&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~" #This is your input string

In [2]: sym = sym.replace(" ","") #remove all "" (spaces)

In [3]: sym #Lets check the output
Out[3]: "!#$%^&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{}~"

In [4]: sym_list = [ sym[i:i+5] for i in range(0, len(sym), 5)] # use range to generate iteration with increment 5 each time

In [5]: sym_list #So, did we get blocks of 5 chars? hope so. 
Out[5]: 
['!#$%^',
 "&'()*",
 '+,-./',
 '01234',
 '56789',
 ':;<=>',
 '?@ABC',
 'DEFGH',
 'IJKLM',
 'NOPQR',
 'STUVW',
 'XYZ[\\',
 ']^_`a',
 'bcdef',
 'ghijk',
 'lmnop',
 'qrstu',
 'vwxyz',
 '{}~']

如果我的任何假设不正确,请纠正我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2017-05-12
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多