Python 将二维列表转换为字典
我正在尝试将列表列表转换为字典。 每个列表必须有2个元素,如果没有,则应附加第2个元素“无”。那就是我被困的地方 表格的初始列表: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
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'
?这不会产生您当前在问题中要求的结果。请解决这个问题。所有帖子下方都有“编辑”按钮。请使用它们。另外,如果您可以在工作时按照要求修复标签,那将非常好。