我有一份清单清单:
a = [['0.06'], ['0.54'], ['0.61']]
我想将此列表转换为正常列表,如下所示:
a = [0.06, 0.54, 0.61]
我该怎么做呢
答案 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']