关于Python的问题:把列表转换成字典

题目:
在一行输入一个列表,列表中的元素有规律地间隔排列,比如:[1, '张三', 3, '李四', 2, '王五', 4, '老六'],请把它转换成字典{1: '张三', 2: '王五', 3: '李四', 4: '老六'} 输出,字典按关键字排序。提示:可用列表切片和zip()函数实现。

输入格式:
在一行输入一个列表。

输出格式:
输出转换后的字典。

输入样例:
在这里给出一组输入。例如:

[1, '张三', 3, '李四', 2, '王五', 4, '老六']
输出样例:
在这里给出相应的输出。例如:

{1: '张三', 2: '王五', 3: '李四', 4: '老六'}
请问应该怎么写啊?谢谢

lst = eval(input())
dct = dict(zip(lst[::2], lst[1::2]))
dct = dict(sorted(dct.items()))
print(dct)

img


lst = [1, '张三', 3, '李四', 2, '王五', 4, '老六']

# 将关键字和值分别存储在两个列表中
keys = lst[::2]
values = lst[1::2]

# 使用zip函数将关键字列表和值列表合并成一个元组列表
items = list(zip(keys, values))

# 将元组列表转换成字典,并按照关键字排序
result = dict(sorted(items))

print(result)

楼下相关推荐里就有一模一样的?为什么一个相同的问题反复问

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7731710
  • 以下回答由chatgpt基于相关博客总结生成:

    可以用zip()函数和列表切片来实现。首先,将列表按关键字和值分别分为两个子列表,然后使用zip()函数将这两个子列表打包为元组的列表,最后将这个元组的列表转换为字典。具体实现如下:

    lst = [1, '张三', 3, '李四', 2, '王五', 4, '老六']
    keys = lst[::2] # 以步长为2取出关键字列表
    values = lst[1::2] # 以步长为2取出值列表
    dict1 = dict(zip(keys, values)) # 利用zip()和dict()函数生成字典
    print(dict1)
    

    输出结果为:

    {1: '张三', 3: '李四', 2: '王五', 4: '老六'}
    

    在上述代码中,我首先利用列表切片按关键字和值分别从原始列表lst中取出两个子列表keys和values。这两个子列表都是间隔排列的,其中keys列表包含了原始列表lst中所有的关键字,values列表包含了所有的值。接下来,我使用zip()函数将这两个子列表打包成了一个元组的列表,即[(1, '张三'), (3, '李四'), (2, '王五'), (4, '老六')]。最后,我将这个元组的列表转换为了字典dict1,得到了按关键字排序的字典。