gpt4 book ai didi

python - 如何在python中使用迭代器

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:33 24 4
gpt4 key购买 nike

<分区>

我正在学习 Python,但我不明白如何使用迭代器。

我需要写代码。在 C 中它会是这样的:

list_node *cp = list_of_chars;
char dp = '>'; int flag = 0;
while (cp != NULL)
{ if( isdigit(cp->val) )
{ printf("%c",cp->val);
if( cp->val == '0' )
{ cp->prev->next = cp->next; cp->next->prev = cp->prev; }
else cp->val--;
}
else if( (cp->val == '>') || (cp->val == '<') )
{ dp = cp->val; flag = 1; }

if( dp == '>' ) cp = cp->next;
else if( dp == '<' ) cp = cp->prev;
else return ERR;

if( flag && ( (cp->val == '>') || (cp->val == '<') ))
{ cp->prev->prev->next = cp;
cp->prev = cp->prev->prev;
}
}

你能帮我把这段代码翻译成python吗?我开始写,但有一些错误,我不确定我是否理解文档。

  ip = {'cp' : iter(program), 'dp' : '>'}
flag = 0

while ip['cp'] != []:

if ('0' <= ip['cp']) & (ip['cp'] <= '9'):
print ip['cp']
if ip['cp'] == '0': ip['cp'] = []
else: ip['cp'] -= 1

elif (ip['cp'] == '>') | (ip['cp'] == '<'):
ip['dp'] = ip.['cp']
flag = 1

else: raise NameError('incorrect cp-value')

if ip['dp'] == '>': ip['cp'].next()
elif ip['dp'] == '<': ip['cp'].prev()
else: raise NameError('incorrect dp-value')

if flag & ( (ip['cp'] == '>') | (ip['cp'] == '<') ):
ip['cp'].prev()
ip['cp'] = []

问题是在没有函数 next() 的情况下如何获取迭代器的值。

使用迭代器的高级用法的 python 专家代码示例也很高兴看到。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com