Python遍历数组,修改

2018-06-21  本文已影响28人  枫雪孤城

Python遍历数组,修改


arr = ['a', 'b', 'c']   #想实现['<a>', '<b>', '<c>']

for i in arr:            #错误方法

    i = '<' + i + '>'
   print(i)              # i得到了想要的结果
print(arr)              #arr没有发生改变。说明i是系统新创建的变量,并且copy了arr中元素的值,但是指针
                            #并没有指向数组中的元素

for i in range(0, len(arr)):        #正确方法

    arr[i] = '<' + arr[i] + '>'

当然,也可以使用map()方法:

def addBrackets(x) :
    return '<' + x + '>'
newArr = map(addBrackets, arr)
print(list(newArr))

值得注意的是在Python3中map()方法返回的是iterator(迭代器)而不是list,所以需要用list()方法才能显示出来。返回iterator是因为map()函数处理的对象本身就可能是一个iterator,在Python2中,map()方法返回的是list,如果list太大就可能导致内存不足,而返回iterator就不存在这个问题,因为Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。reduce(), filter() 同理。

上一篇下一篇

猜你喜欢

热点阅读