【发布时间】:2018-11-02 11:06:14
【问题描述】:
我有一个问题需要使用 python 解决,使用 def 函数。基本上取一个数字列表,然后在列表中每个元素的末尾添加一个字母。
我终于可以做到了,但由于种种原因,我需要找到一种不使用enumerate 的替代方法。有什么方法可以在不使用 enumerate 函数的情况下完成这项工作,更简单一些。这是我的工作代码:
def addletter( mylist ):
for index, item in enumerate(mylist):
mylist[index] = str(item)
for i in range(len(mylist)):
mylist[i] = mylist[i] + randomletter
return
# Now you can call addletter function
mylist = [1,2,3,4,5,6,7,8,9,];
randomletter= 'a'
addletter( mylist );
print (mylist)
【问题讨论】:
-
Enumerate 只返回一个索引和值。您可以添加一个初始化为 0 的计数器,并在每个循环结束时添加 1。计数器将是当前索引
-
我想知道不使用 enumerate 的原因。
-
这听起来很像一个家庭作业问题,你的老师认为你没有完全按照他们想要的方式解决它。例如,
addletter是要改变(改变)它的输入列表,还是要创建一个新的输出列表? -
enumerate这里甚至不需要,你不关心索引,只需遍历列表,将 int 转换为字符串并在字符串中添加 'a' -
@ruohola 返回一个新列表会更好,无论如何你可以重新分配给同一个列表切片
mylist[:] = ['{}a'.format(i) for i in mylist]
标签: python python-3.x