繁体   English   中英

在 Python 中使用 Zip 每 2 个字符拆分字符串

[英]Split String every 2 characters with Zip in Python 3

我需要制作一个接收字符串和数字的 function 并每隔 2 个字符拆分一次该字符串,但如果字符串的长度甚至不是我必须添加数字。 这是我到目前为止所得到的。

def splitString(string,number):
  if (len(string)%2 != 0):
    return list(map(''.join, zip(*[iter(string)]*2))) # I don't know how to add the number at the end
  else:
    return list(map(''.join, zip(*[iter(string)]*2)))

因为这是做作业,我被告知我不能创建一个列表然后使用.append() 所以我必须准备好返回列表。

你很接近:

def splitString(string,number):
  if (len(string)%2 != 0):
    return list(map(''.join, zip(*[iter(string + str(number))]*2)))
  else:
    return list(map(''.join, zip(*[iter(string)]*2)))

例子:

>>> splitString("hellow", 4)
['he', 'll', 'ow']

>>> splitString("hello", 4)
['he', 'll', 'o4']

这很容易实现,使用re.findall在字符串中搜索 2 个字符的子字符串并附加数字:

import re

def splitString(string,number):
    return re.findall(r'..', string + str(number))

print(splitString('hello', 3))
print(splitString('farewell', 3))

Output:

['he', 'll', 'o3']
['fa', 're', 'we', 'll']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM