我试图使用用户制作的功能打印列表的所有元素.
y = [1,2,3]
def ash(list1):
for x in range(len(list)):
return list[x],x
Run Code Online (Sandbox Code Playgroud)
我想要做的是返回列表中的所有值及其索引,但我得到的只是一个元素.我可以得到要打印但不返回的元素.
您将在第一次迭代时返回.相反,您需要在函数中创建一个列表,并在该列表中添加所有元组,最后返回该列表.
要获得索引和元素,您可以使用enumerate():
def ash(list1):
new_list = []
for x, elem in enumerate(list1):
new_list.append((elem,x))
return new_list
Run Code Online (Sandbox Code Playgroud)
或者,更好的是你可以简单地使用List comprehension:
return [(elem, x) for x, elem in enumerate(list1)]
Run Code Online (Sandbox Code Playgroud)
前两种方法在内存中创建列表.如果你有一个非常大的列表要处理,那么你应该使用生成器,使用yield关键字:
def ash(list1):
for x, elem in enumerate(list1):
yield elem, x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |