非常简单的问题,虽然我很难解决它。
看看代码,我将在下面解释:
def printc(some_text):
split_text = list(some_text)
for x in split_text:
if x is '{'
# this is what i need help with
printc("{CCyan, {RRed, {YYello)
这背后的想法,它仍然是代码开发的早期,但我想要做的是创建一个迭代器,搜索“split_text”并找到字符'{'然后我想测试什么字符是就在它旁边。我该怎么做呢?
例如,通过split_text搜索并找到第一个{我想看看它旁边的字符是A,B,C等...
有什么想法吗?
答案 0 :(得分:4)
单个正则表达式更容易。
import re
re.findall('{(.)', some_text)
输出:
['C', 'R', 'Y']
答案 1 :(得分:2)
for x, y in zip(some_text, some_text[1:]):
if x == '{':
print y
你甚至可以让它变得更简单:
chars = [y for (x, y) in zip(some_text, some_text[1:]) if x == '{']
答案 2 :(得分:1)
如果我需要这样的东西,我通常会成对迭代:
from itertools import tee, izip
def pairwise(iterable):
"""Iterate in pairs
>>> list(pairwise([0, 1, 2, 3]))
[(0, 1), (1, 2), (2, 3)]
>>> tuple(pairwise([])) == tuple(pairwise('x')) == ()
True
"""
a, b = tee(iterable)
next(b, None)
return izip(a, b)
用法如下:
for left, right in pairwise(iterable):
...