【发布时间】:2019-03-03 17:38:02
【问题描述】:
我有 2 个矩阵:
list_alpha = [['a'],
['b'],
['c'],
['d'],
['e']]
list_beta = [['1', 'a', 'e', 'b'],
['2', 'd', 'X', 'X'],
['3', 'a', 'X', 'X'],
['4', 'd', 'a', 'c'],
我的目标是,如果来自 list_alpha 的字母在 list_beta 的子列表中,则将 list_beta 中该行的第一个元素(#)添加到 list_alpha 中的正确行。 所以我的输出是:
final_list = [['a', '1', '3', '4'],
['b', '1'],
['c', '4'],
['d', '2', '4'],
['e', '1']]
但总的来说,我对 python 和编码还很陌生,我不知道该怎么做。有没有办法对此进行编码?还是我必须更改数据在任一列表中的存储方式?
编辑:
将 list_alpha 更改为字典有帮助!
最终代码:
dict_alpha = {'a': [], 'b': [], 'c': [], 'd': [], 'e':[]}
list_beta = [['1', 'a', 'e', 'b'],
['2', 'd', 'X', 'X'],
['3', 'a', 'X', 'X'],
['4', 'd', 'a', 'c'],
['5', 'X', 'X', 'e'],
['6', 'c', 'X', 'X']]
for letter in dict_alpha:
for item in list_beta:
if letter in item:
dict_alpha.get(letter).append(item[0])
print(dict_alpha)
【问题讨论】:
-
我会将 list_alpha 转换为字母->空列表的字典,例如
{"a": [], "b":[] ... },然后遍历 list_beta 中的每个列表,并根据需要将数字附加到字典中的列表。
标签: python-3.x list matrix mapping