Python 如何读取5个字符块中的字符串?
我的Python代码应该输出一个字符串除以5个字符的数组。我不明白这里的逻辑:Python 如何读取5个字符块中的字符串?,python,string,Python,String,我的Python代码应该输出一个字符串除以5个字符的数组。我不明白这里的逻辑: string = 'j3h1273172' # example def getStringSplitBy(num=5, string): for i in range(len(string)): print string[i+num] 输出应为: ['j3h12','73172'] 使用列表理解: 使用列表理解: 你可以这样试试 >>> [string[:5], st
string = 'j3h1273172' # example
def getStringSplitBy(num=5, string):
for i in range(len(string)):
print string[i+num]
输出应为:
['j3h12','73172']
使用列表理解:
使用列表理解:
你可以这样试试
>>> [string[:5], string[5:]]
['j3h12', '73172']
功能:
>>> def get_string_split_by(num, string):
... string_len = len(string)
... items = []
... for ix in range(0,string_len, num):
... items.append(string[ix:ix+num])
... return items
>>> get_string_split_by(5, 'j3h1273172')
['j3h12', '73172']
>>> get_string_split_by(5, 'j3h127317212345')
['j3h12', '73172', '12345']
你可以这样试试
>>> [string[:5], string[5:]]
['j3h12', '73172']
功能:
>>> def get_string_split_by(num, string):
... string_len = len(string)
... items = []
... for ix in range(0,string_len, num):
... items.append(string[ix:ix+num])
... return items
>>> get_string_split_by(5, 'j3h1273172')
['j3h12', '73172']
>>> get_string_split_by(5, 'j3h127317212345')
['j3h12', '73172', '12345']
该函数中没有任何逻辑,因为它有语法错误,但它不能按预期工作。您可以简单地使用:
def get_string_split_by(num, string):
return string[:num], string[num:]
该函数中没有任何逻辑,因为它有语法错误,但它不能按预期工作。您可以简单地使用:
def get_string_split_by(num, string):
return string[:num], string[num:]
我认为这为这项任务提供了一个解决方案:
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
我认为这为这项任务提供了一个解决方案:
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
您需要使用Python来分割字符串。您发布的代码捕获的是单个字符,而不是一组字符
这段代码将把字符串分成几段。另外,num应该排在第二位,因为它是一个可选参数
def getStringSplitBy(string, num=5):
# Take the length of the string divided by num to figure out how many
# slices you'll end up with
for i in range(len(string)//num):
# Slice the string in chuncks that are num long
yield string[num*i:num*(i+1)] # Yield to make this an iterable
string = 'j3h1273172' # example
result = list(getStringSplitBy(string,5))
print(result) # prints ['j3h12', '73172']
您需要使用Python来分割字符串。您发布的代码捕获的是单个字符,而不是一组字符
这段代码将把字符串分成几段。另外,num应该排在第二位,因为它是一个可选参数
def getStringSplitBy(string, num=5):
# Take the length of the string divided by num to figure out how many
# slices you'll end up with
for i in range(len(string)//num):
# Slice the string in chuncks that are num long
yield string[num*i:num*(i+1)] # Yield to make this an iterable
string = 'j3h1273172' # example
result = list(getStringSplitBy(string,5))
print(result) # prints ['j3h12', '73172']