簡體   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