[英]Function that takes a string and returns a list of 8-character strings
我對編程很新。 我需要創建一個函數,它接受任何字符串和填充字符,並返回8個字符串的列表。 例如:
>>>segmentString("Hello, World!","-")
['Hello, W', 'orld!---']
如您所見,該字符串有13個字符。 該函數分為2個字符串,第一個包含8個字符,第二個包含5個字符和3個填充字符。
到目前為止,我已經想出了如何為少於8個字符的字符串執行此操作,但不會超過8個字符,其中字符串被拆分,這是我堅持的。
def segmentString(s1,x):
while len(s1)<8:
s1+=x
return s1
你如何拆分字符串?
@jpp的答案略微修改后的版本是首先使用填充字符填充字符串,以便長度可以被8完全整除:
def segmentString(s, c):
s = s + c * (8 - len(s) % 8)
return [s[i:i+8] for i in range(0, len(s), 8)]
>>> segmentString("Hello, World!","-")
['Hello, W', 'orld!---']
如果您需要大小可變,您只需添加一個size參數:
def segmentString(s, c, size):
s = s + c * (size - len(s) % size)
return [s[i:i+size] for i in range(0,len(s),size)]
>>> segmentString("Hello, World!","-",4)
['Hell', 'o, W', 'orld', '!---']
另一種可能性:
def segmentString(s1, x):
ret_list = []
while len(s1) > 8:
ret_list.append(s1[:8])
s1 = s1[8:]
if len(s1) > 0:
ret_list.append(s1 + x*(8-len(s1)))
return ret_list
我也是編程的新手,但我想你可以用這個...
Word = "Hello, World!---"
print([Word[i:i+x] for i in range(0, len(Word), x)])
只需將x更改為您想要的任何值。請查看https://www.google.co.in/amp/s/www.geeksforgeeks.org/python-string-split/amp/希望它有所幫助。
這是一個簡單的答案,你可以理解,用幾個簡單的ifs解決你的問題:
a= 'abcdefghijklmdddn'
def segmentString(stuff):
c=[]
i=0
hold=""
for letter in stuff:
i+=1
hold+=letter
if i%8==0:
c.append(hold)
hold=""
c.append(hold)
if hold=="":
print(c)
else:
if hold==c[-1]:
print(c)
else:
c.append(hold)
print(c)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.