Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取5个字符块中的字符串?_Python_String - Fatal编程技术网

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

我的Python代码应该输出一个字符串除以5个字符的数组。我不明白这里的逻辑:

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']