将列表列表转换为普通列表

时间:2018-01-01 20:30:55

标签: python list

我有一份清单清单:

a = [['0.06'], ['0.54'], ['0.61']] 

我想将此列表转换为正常列表,如下所示:

a = [0.06, 0.54, 0.61]

我该怎么做呢

3 个答案:

答案 0 :(得分:2)

使用列表理解:

    #include <iostream>

    #include <vector>

#include <algorithm>
using namespace std;

int main()
{
    unsigned long long T,N , M ,p , m ;
    vector <pair<unsigned long long, unsigned long long > > v;
    cin>>T ;
    for  (unsigned long long i=0 ; i<T;i++)
    {
        v={};
        cin>>N>>M ;
        for (unsigned long long j=0 ; j< N ; j++)
        {
            cin>>p>>m ;
            v.push_back({p,m});

        }
        sort(v.begin(),v.end());

        while (M>=v[0].second)
        {
            while (v[0].first<=v[1].first)
            {
                v[0].first+=1 ;
                M-=v[0].second;

            }
            sort(v.begin(),v.end());

        }


    }
 cout<<"ans"<<v[0].first ;
}

答案 1 :(得分:0)

或者,使用功能方法:

list(map(lambda x: float(x[0]), a))
# [0.06, 0.54, 0.61]

使用itertools首先合并子列表:

import itertools as it


list(map(float, it.chain.from_iterable(a)))
# [0.06, 0.54, 0.61]

列表理解可以说更优雅,更聪明。

答案 2 :(得分:0)

您可以使用zip()函数(返回元组)来做到这一点:

list(zip(*a))[0]

Output: 
('0.06', '0.54', '0.61')

要获取列表而不是元组(要修改列表时):

list(list(zip(*a))[0])

Output:
['0.06', '0.54', '0.61']