Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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

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字符串拆分_Python_String - Fatal编程技术网

基于索引的python字符串拆分

基于索引的python字符串拆分,python,string,Python,String,这听起来很基本,但我还没有想到一个简单明了的方法在Python中实现这一点 我有一个类似于“abcdefgh”的字符串,我需要创建一个元素列表,每次从字符串中选取两个字符,以获得['ab'、'cd'、'ef'、'gh'] 我现在正在做的是 output = [] for i in range(0,len(input),2): output.append(input[i:i+2]) 有更好的方法吗 In [2]: s = 'abcdefgh' In [3]: [s[i:i+2] for

这听起来很基本,但我还没有想到一个简单明了的方法在Python中实现这一点

我有一个类似于
“abcdefgh”
的字符串,我需要创建一个元素列表,每次从字符串中选取两个字符,以获得
['ab'、'cd'、'ef'、'gh']

我现在正在做的是

output = []

for i in range(0,len(input),2):
  output.append(input[i:i+2])
有更好的方法吗

In [2]: s = 'abcdefgh'

In [3]: [s[i:i+2] for i in range(0, len(s), 2)]
Out[3]: ['ab', 'cd', 'ef', 'gh']
有更好的方法吗

In [2]: s = 'abcdefgh'

In [3]: [s[i:i+2] for i in range(0, len(s), 2)]
Out[3]: ['ab', 'cd', 'ef', 'gh']
当然。列表理解可以做到这一点

def n_chars_at_a_time(s, n=2):
  return [s[i:i+n] for i in xrange(0, len(s), n)]
你应该做你想做的。
s[i:i+n]
返回从
i
开始并在以后以
n
字符结束的子字符串

n_chars_at_a_time("foo bar baz boo", 2)
产生

['fo', 'o ', 'ba', 'r ', 'ba', 'z ', 'bo', 'o']
在python REPL中

有关更多信息,请参阅:

迭代器输出上的两个常见操作是

  • 对每个元素执行一些操作
  • 选择满足某些条件的图元子集
  • 例如,给定一个字符串列表,您可能希望从每行中去掉尾随空格,或者提取包含给定子字符串的所有字符串

    列表理解和生成器表达式(缩写:“listcomps”和“genexps”)是此类操作的简明表示法


    只是为了好玩,如果你讨厌

    >>> s='abcdefgh'
    >>> map(''.join, zip(s[::2], s[1::2]))
    ['ab', 'cd', 'ef', 'gh']
    

    相关:我可能只是不喜欢那里的for循环。我就是这么想的。或者
    map('''.join,zip(*[iter(s)]*2))