如何解决请提供建议 - Python 中的基本 For 循环效率
首先,我想澄清一下,我目前正在学习 Python。所以这可能是一个初学者级别的问题。提前感谢您的任何建议/回复。
目前,我正在学习的课程是循环和迭代。我决定自己做一些工作,并提出自己的挑战以进行简单的练习。
我的个人挑战: 在变量中创建并存储一个字符串,然后使用枚举器,以相反的顺序输出字符串。
**我知道还有其他方法可以实现这一点,但是,我有目的地尝试了解枚举器可以提供多少灵活性。
我浏览了几种格式,我知道哪些格式最有效,但是,我能想出的最好的格式(根据我目前的知识)是这样的:
mystring1 = 'Zero'
for index,letter in enumerate(mystring1):
if index == 0:
index0 = index,letter
print('First Index:',index0,'\n')
index += 1
if index == 1:
index1 = index,letter
print('Second Index:',index1,'\n')
index += 1
if index == 2:
index2 = index,letter
print('Third Index:',index2,'\n')
index += 1
if index == 3:
index3 = index,letter
print('Fourt Index:',index3,'\n')
index += 1
else:
continue
else:
continue
else:
continue
else:
print('All Letters Captured')
break
print(index3,index0)
使用上面的代码,这是我的输出,但是,有两个问题:我没有将字母抓取到相应的索引,而且我觉得我没有最有效地完成它。
First Index: (0,'Z')
Second Index: (1,'Z')
Third Index: (2,'Z')
Fourt Index: (3,'Z')
(3,'Z') (2,'Z') (1,'Z') (0,'Z')
All Letters Captured
我对 C# 有一些了解,我主要担心得到类似于数组的输出;我将拥有所有可能的组合。
任何提示或建议都会很棒。只是在努力学习!
再次感谢大家的时间!
解决方法
我认为第一个问题是您的代码没有按照您的意愿行事,而不是效率低下。因为您在每个 if 语句的末尾都有 index += 1
,所以程序实际上会在第一个循环中分配所有索引(这就是与每个索引关联的字母是 Z
的原因。更清晰的方法可能看起来像
a = []
for index,letter in enumerate(mystring1):
a.insert(0,(index,letter))
a
是一个列表,每次我们调用 a.insert(0,...)
时,我们都会在该列表前面加上(有效地反转枚举器)。它输出
[(3,'o'),(2,'r'),(1,'e'),(0,'Z')]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。