黑马程序员技术交流社区

标题: 关于while和for循环遍历列表的一点思考 [打印本页]

作者: 2sqkmga    时间: 2018-10-7 21:35
标题: 关于while和for循环遍历列表的一点思考
初学循环的时候遇到一作业题:已有列表nums=[11,22,33,44,55],分别使用 while 或者 for 循环遍历列表,并将每一个数字加 10 ,打印最终的列表。
用while循环实现:
nums=[11,22,33,44,55]
i = 0
while i <= len(nums):
    num = nums + 10
    i += 1
print(nums)

用for循环实现:
nums=[11,22,33,44,55]
num1 = []
for i in nums:
    num1.append(i + 10)
print(num1)

以上是分别用for和while循环实现列表遍历的操作,但是由于在使用for循环遍历列表的时候需要新建一个空列表来append原列表遍历后+10的值,于是乎便引发了一些思考:如果使用for循环的时候不想开辟一个空列表的时候要如何完成需求呢?
在问过了老师后学会了一个python新的内置函数:enumerate()

api手册上的描述是:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
于是乎,利用for循环且不开辟新的空列表情况下:
nums=[11,22,33,44,55]
for i in enumerate(nums):
    nums = num + 10
    nums[i[0]] = nums[i[0]] + 10
    print(i)
print(nums)







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2