python遍历列表时为什么只遍历了两个而不是列表里的所有元素呢
代码如下:defmake_great(names):great_names=[]foriinnames:temp=names.pop(0)great_names.appe...
代码如下:
def make_great(names):
great_names=[]
for i in names:
temp=names.pop(0)
great_names.append("graet"+temp)
print(great_names)
return great_names
magicman=["sssssob","baaaaaaill","sam","tony"]
make_great(magicman)
得到的结果是:
['graetsssssob', 'graetbaaaaaaill']
为什么不是四个呢
复制过来后缩进没有了 凑合看吧 展开
def make_great(names):
great_names=[]
for i in names:
temp=names.pop(0)
great_names.append("graet"+temp)
print(great_names)
return great_names
magicman=["sssssob","baaaaaaill","sam","tony"]
make_great(magicman)
得到的结果是:
['graetsssssob', 'graetbaaaaaaill']
为什么不是四个呢
复制过来后缩进没有了 凑合看吧 展开
2个回答
展开全部
def make_great(names):
great_names=[]
for i in names:
great_names.append("graet"+i)
print(great_names)
return great_names
追问
所以我的问题在哪里啊 参数混乱?
追答
你在循环迭代的过程中又使用了pop改变了列表元素结构,因此迭代器返回的元素下标不正确。
另外,这个函数其实只要很简单的一行列表生成式就能代替:return ['great' + i for i in names],这才是Python的独特魅力。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询