python如何从列表创建字典

python如何从列表创建字典,python,Python,字典的键应等于数字,值应等于相应的标题 str1 = ['Program ONE', '1001 Transfiguration. ', '1100 Charms.', '1250 Defence Against the Dark Arts.', '1380 Potions. ', '1420 Arithmancy.', '2075 Flying. '] 首先创建一个字典,如下所示: m

字典的键应等于数字,值应等于相应的标题

str1 = ['Program ONE', 
        '1001 Transfiguration. ', 
        '1100 Charms.', 
        '1250 Defence Against the Dark Arts.', 
        '1380 Potions. ', 
        '1420 Arithmancy.', 
        '2075 Flying. ']

首先创建一个字典,如下所示:

my_dict = {}
temp = x.split(" ")
然后迭代你的列表。您可以通过以下方式实现这一目标:

for x in str1:
在您的特定情况下(除了
程序一
),数字首先出现。它们也有四个字符的长度,但让我们考虑一个更一般的情况。在for循环中,您可以创建一个临时列表,其中包含由空格分隔的所有内容,如下所示:

my_dict = {}
temp = x.split(" ")
对于原始列表中的第二个元素,它将如下所示:

['1001', 'Transfiguration. ']
数字是临时列表(索引0)中的第一个元素。其他所有内容都是课程的名称,因此让我们使用
.join()
方法获取正确的字符串

temp_str = " ".join(temp[1:])
它所做的是选择从索引1开始的所有项目,然后使用空格作为分隔符将它们连接在一起

现在让我们在字典里添加一些东西。定义新对遵循语法
字典[key]=value
。Key是临时列表的第一个元素,value是新创建的字符串,所以剩下要做的就是:

my_dict[temp[0]] = temp_str

好的,这是基本的字符串处理

course_dict = {}
for pair in str1:
    course_number, course_name = pair.split(' ', 1)  # TODO: handle double-spaces, etc.
    # Check that course_number is really a number
    try:
        num = int(course_number)
        # No error, so it was a number -> good to go
        course_dict[course_number] = course_name
    except:
        # it's not a number
        pass
伪代码是什么:

For each item in <str1>:
    split out the number
    split out the course-name
    add number:course to a dictionary
记下一点伪代码总是有帮助的,这有助于你了解任务。这段代码中的关键是
拆分(“”,1)
——由于第二个参数,这只进行了一次拆分

那么-那有问题的第一个条目呢,我们怎么能检测到呢? 好的,代码中的一些基本错误处理将捕获它,拥有更好的错误处理总是好的

course_dict = {}
for pair in str1:
    course_number, course_name = pair.split(' ', 1)  # TODO: handle double-spaces, etc.
    # Check that course_number is really a number
    try:
        num = int(course_number)
        # No error, so it was a number -> good to go
        course_dict[course_number] = course_name
    except:
        # it's not a number
        pass

如果没有数字,比如在
“程序一”
?欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南,在这里申请。StackOverflow不是设计、编码、研究或教程资源。然而,如果你关注你在网上找到的任何资源,进行诚实的编码尝试,并遇到问题,你会有一个很好的例子发布。如果你只是麻烦谷歌你的问题标题,你会得到很多有用的点击。非常感谢!我被困在分裂中