【问题标题】:Getting two characters from string in python从python中的字符串中获取两个字符
【发布时间】:2010-05-22 13:38:19
【问题描述】:

如何从字符串中获取python不是一个字符,而是两个?

我有:

long_str = 'abcd'
for c in long_str:
   print c

它给了我喜欢

a
b
c
d

但我需要得到

ab
cd

我是python新手..有什么办法吗?

【问题讨论】:

标签: python loops for-loop character


【解决方案1】:

您可以使用切片表示法。 long_str[x:y] 将为您提供[x, y) 范围内的字符(其中包含 x 而不包含 y)。

>>> for i in range(0, len(long_str) - 1, 2):
...   print long_str[i:i+2]
... 
ab
cd

这里我使用三参数范围运算符来表示开始、结束和步骤(请参阅http://docs.python.org/library/functions.html)。

请注意,对于奇数长度的字符串,这不会取最后一个字符。如果您想要最后一个字符本身,请将range 的第二个参数更改为len(long_str)

【讨论】:

    【解决方案2】:
    for i, j in zip(long_str[::2], long_str[1::2]):
      print (i+j)
    

    import operator
    for s in map(operator.add, long_str[::2], long_str[1::2]):
       print (s)
    

    itertools 也提供了一个通用的实现:

    def grouper(n, iterable, fillvalue=None):
        "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
        args = [iter(iterable)] * n
        return izip_longest(fillvalue=fillvalue, *args)
    

    【讨论】:

      猜你喜欢
      • 2022-09-28
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多