Python 将二维列表转换为字典

Python 将二维列表转换为字典,python,python-3.x,list,dictionary,for-loop,Python,Python 3.x,List,Dictionary,For Loop,我正在尝试将列表列表转换为字典。 每个列表必须有2个元素,如果没有,则应附加第2个元素“无”。那就是我被困的地方 表格的初始列表: test = [['A', 27], ['B', 33], ['C', 42], ['D']] dictionary = {'A': 27, 'B':33, 'C': 42, 'D': 'None'} 最终词典的格式应为: test = [['A', 27], ['B', 33], ['C', 42], ['D']] dictionary = {'A': 27

我正在尝试将列表列表转换为字典。 每个列表必须有2个元素,如果没有,则应附加第2个元素“无”。那就是我被困的地方

表格的初始列表:

test = [['A', 27], ['B', 33], ['C', 42], ['D']]
dictionary = {'A': 27, 'B':33, 'C': 42, 'D': 'None'}
最终词典的格式应为:

test = [['A', 27], ['B', 33], ['C', 42], ['D']]
dictionary = {'A': 27, 'B':33, 'C': 42, 'D': 'None'}
我不熟悉编码,for循环对我来说是一个弱点。 我从以下几点开始:

for n in range(0, len(test1)):
    d = dict(test1[n])
但我确实迷路了


我的思维过程是:获取列表中的所有元素(每个子列表),并将“无”附加到任何1D元素中。。。我只是不知道该怎么做。

弄明白了。。。我觉得我的问题有点措词不当。问题的关键是迭代列表以确保所有子列表包含2个元素

# Declare test list
test = [['A', 27], ['B', 33], ['C', 42], ['D']]

# Create max len variable
max_len = max(len(item) for item in test)

# Verify all lists within test contain 2 elements
# If not, append 'none'
for item in test:
  while len(item) < max_len:
    item.append(None)
test

# Create dictionary from list
contacts_dict = dict(test)
contacts_dict
#声明测试列表
测试=[[A',27],[B',33],[C',42],[D']]
#创建最大长度变量
max_len=max(测试中项目的len(项目))
#验证测试中的所有列表是否包含2个元素
#如果不是,请附加“无”
对于测试中的项目:
而长度(项目)<最大长度:
item.append(无)
测试
#从列表创建字典
触点dict=dict(测试)
联系方式

您可以边走边过滤:

d = {x[0]: x[1] if len(x) == 2 else None for x in test}
或者您可以使用
dict
构造函数:

d = dict(x if len(x) == 2 else (x[0], None) for x in test)

您能否在问题中添加一个普通python标记?
None
'None'
?这不会产生您当前在问题中要求的结果。请解决这个问题。所有帖子下方都有“编辑”按钮。请使用它们。另外,如果您可以在工作时按照要求修复标签,那将非常好。