python中將list轉為dict

2021-09-12 22:35:06 字數 2240 閱讀 1989

最近在專案中經常遇到將list轉為dict形式,之前都只會用for迴圈,取出list中的每個值,update到dict中。

scrabble_scores = [(1, "e a o i n r t l s u"), (2, "d g"), (3, "b c m p"), (4, "f h v w y"), (5, "k"), (8, "j x"), (10, "q z")]
如何將上面的list拆分成key為字母,value為分數呢?

letter_scores =
通過上式處理後,就會形成此類形式。

首先通過split()函式將字母分開,然後取出letters中的letter作為字典的key值,將分值作為value。

letter = namedtuple('letter', 'name amount value')

distribution = [letter(name='a', amount='9', value='1'), letter(name='b', amount='2', value='3'), letter(name='c', amount='2', value='3'), letter(name='d', amount='4', value='2'), letter(name='e', amount='12', value='1'), letter(name='f', amount='2', value='4'), letter(name='g', amount='3', value='2'), letter(name='h', amount='2', value='4'), letter(name='i', amount='9', value='1'), letter(name='j', amount='1', value='8'), letter(name='k', amount='1', value='5'), letter(name='l', amount='4', value='1'), letter(name='m', amount='2', value='3'), letter(name='n', amount='6', value='1'), letter(name='o', amount='8', value='1'), letter(name='p', amount='2', value='3'), letter(name='q', amount='1', value='10'), letter(name='r', amount='6', value='1'), letter(name='s', amount='4', value='1'), letter(name='t', amount='6', value='1'), letter(name='u', amount='4', value='1'), letter(name='v', amount='2', value='4'), letter(name='w', amount='2', value='4'), letter(name='x', amount='1', value='8'), letter(name='y', amount='2', value='4'), letter(name='z', amount='1', value='10')]

如何將上面的distribution中的name和value轉換成dict形式?

首先可以先將name和value值分別放到兩個list中,可以通過下面**實現:

names = [letter.name for letter in distribution]

values = [int(letter.value) for letter in distribution]

然後可以通過zip()函式將name和value一一對應起來:

zip(names, values)

for i in zip(names, values):

print(i)

通過迴圈列印可以發現,name和value已經一一對應上了。

最後將得到的由元組組成的list直接轉為dict,在這邊只需要直接用dict()函式即可。所以,實現上述功能需求,只需要下面一行**:

letter_scores = dict(zip(

[letter.name for letter in distribution],

[int(letter.value) for letter in distribution]

))

得到的結果為:

mysql中將時間轉為秒

專案中遇到的問題,需要將時間 時 分 秒 轉為秒,業務上處理有些麻煩,嘗試找了多種處理函式,然而並沒有用 完美解決辦法 time to sec 格式 hh mm ss 或hhmmss 並且這個函式可以相互轉換 秒 轉 時 分 秒 但是time to sec 是把 時分秒轉為 秒,並不會對年月日進行處...

python讀取csv檔案並轉為list

import os import pandas as pd import numpy as np from itertools import chain os.getcwd 讀取當前路徑 path os.getcwd eclipse nnpom.csv df pd.dataframe pd.read...

Scrapy中將item欄位轉為簡體or繁體

1.安裝hanziconv 安裝乙個簡繁體轉換的包 pip install hanziconv 2.自定義乙個itempiples 找到專案中的pipelines.py檔案 新增自定義的pipeline from hanziconv import hanziconv class hanziconvp...