列表转换 - 就地

时间:2016-08-26 05:18:41

标签: python arrays list in-place

我正在尝试将[' 1',' 2',' 3',' 4']转换为[1,2 ,3,4] 我想在这里进行这种转换。有可能吗?如果没有,那么最佳解决方案是什么。

4 个答案:

答案 0 :(得分:2)

我认为最好使用map来完成这类任务。这创建了迭代器,这意味着它的内存效率更高。

l = list(map(int, l))
# here I convert it to list, but usually you would just iterate over it
# so you can just do
for item in map(int, l):
    ...

答案 1 :(得分:1)

你可以用这样的列表理解来做到这一点:

l = [int(item) for item in l]

答案 2 :(得分:0)

这应该是非常适合的吗?

In [31]: l = ['1','2','3','4']

In [32]: for i in range(len(l)):
   ....:     l[i] = int(l[i])
   ....:     

In [33]: l
Out[33]: [1, 2, 3, 4]

或者,您可以使用enumerate来执行此操作,该list采用可迭代(如index)并返回In [84]: l = ['1','2','3','4'] In [85]: for idx, val in enumerate(l): ....: l[idx] = int(val) ....: In [86]: l Out[86]: [1, 2, 3, 4] 以及从开头到结尾的相应值:

app.factory('SomeFactory', ['$http', 'djangoUrl',
  function ($http, djangoUrl) {
    return {
      getSomeDataAndUpdateSessionVar: function () {
        return $http({
          method: 'POST',
          url: djangoUrl.reverse('some_app:list'),
          data: {
            param1: "param1"
          }
        })
      },
    }
  }
]);

答案 3 :(得分:0)

只要整个数组适合内存,您就应该可以逐步完成它,随时替换每个项目:

# bigarray is ['1','2','3','4',...];

# loop through bigarray using index i
for i in range(len(bigarray)):
    # coerce bigarray[i] to int in place
    bigarray[i] = int(bigarray[i])

# bigarray is [1,2,3,4,...];
祝你好运!