如何将嵌套列表转换为字典?

时间:2019-02-24 07:20:20

标签: python dictionary nested-lists

我目前正在从事一项工作,我需要将嵌套列表转换成字典,在这里我必须将代码与下面的嵌套列表分开。

data = [['ABC', "Tel", "12/07/2017", 1.5, 1000],['ACE', "S&P", "12/08/2017", 3.2, 2000],['AEB', "ENG", "04/03/2017", 1.4, 3000]] 

得到这个

Code    Name    Purchase Date   Price   Volume
ABC     Tel     12/07/2017      1.5     1000
ACE     S&P     12/08/2017      3.2     2000
AEB     ENG     04/03/2017      1.4     3000

因此其余值仍在列表中,但已标记为代码作为键。

任何人都可以对此提出建议,谢谢!

3 个答案:

答案 0 :(得分:2)

您可以为此使用pandas数据框:

TEMP.date = pd.to_datetime(TEMP.date) 

TEMP = TEMP.groupby(['date', 'place']).apply(lambda x: np.round(np.average(x['temp'],weights=x['quantity']), 2)).reset_index(name = 'temp')

DF.merge(TEMP.set_index('date').groupby('place')['temp'].apply(lambda x: x.asfreq('D', method='ffill')).reset_index(), 'left')

    date        place   temp
0   2019-01-01  A       NaN
1   2019-01-11  A       5.00
2   2019-01-13  A       5.00
3   2019-01-14  A       7.00
4   2019-01-22  B       10.00
5   2019-02-14  C       10.75

答案 1 :(得分:2)

您可以使用dictcomp:

keys = ['Code','Name','Purchase Date','Price','Volume']

{k: v for k, *v in zip(keys, *data)}

结果:

{'Code': ['ABC', 'ACE', 'AEB'],
 'Name': ['Tel', 'S&P', 'ENG'],
 'Purchase Date': ['12/07/2017', '12/08/2017', '04/03/2017'],
 'Price': [1.5, 3.2, 1.4],
 'Volume': [1000, 2000, 3000]}

答案 2 :(得分:1)

我假设字典是指字典列表,每个字典代表以标题为键的行。

您可以这样做:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="selectExample" ng-controller="ExampleController">
  <table id="example" width="100%">


    <tr ng-repeat="person in register.names">
      <td align="center">{{ person.name }}</td>
      <td align="center" ng-repeat="(key,image) in person.image"><img class="imgSmall" ng-src="{{image.image}}" ng-click="getBig(key,image)">
        <div ng-show="image.flag" id="myModal" class="modal">
          <span class="close" ng-click="close(key,image)">&times;</span>
          <img class="modal-content" ng-src="{{image.image}}" id="img01">
          <div id="caption"></div>
        </div>
      </td>
    </tr>
  </table>

</div>