Python - 尝试通过for循环创建字典

时间:2017-04-19 20:57:45

标签: python dictionary for-loop

我正在尝试使用for循环创建一个字典。我有一个有序列表,我试图将列表中的值与有序数字相匹配。例如: {0:100, 1:423, 2:434}

我在制作for循环时遇到了麻烦。

list = [102, 232, 424]
count = 0
d = {} #Empty dictionary to add values into

for i in list:
    #dictionary key = count
    #key.append(i)
    count+=1

因此在for循环中我基本上想要将count变量作为键,并将列表中的相应项作为值。然后我会添加一个来计算,然后继续。如果我的代码在for循环中有点不清楚,我很抱歉。这不是实际的代码,但只是我想要的一般概念。谁能帮我?谢谢。

4 个答案:

答案 0 :(得分:4)

您可以通过dictionary[key] = item在字典中设置项目,因此在您的情况下,您可以这样做:

list = [102, 232, 424]
count = 0
d = {} #Empty dictionary to add values into

for i in list:
    d[count] = i
    count+=1

答案 1 :(得分:3)

您可以使用枚举:

list = [102, 232, 424]
d = {}

for a, b in enumerate(list):
    d[a] = b

或者,使用字典理解:

d = {a:b for a, b in enumerate(list)}

答案 2 :(得分:0)

您可以在一行中执行此操作,而无需使用For循环或Counter变量:

dict(zip(range(0, len(list)), list))

答案 3 :(得分:0)

这是问题的一个更复杂的版本,但它实际上仍在创建带有for循环的字典。我想为我的计算机上的所有照片/录像创建一个数据库-其中有1000幅,并为每张照片创建字典记录,并使用照片/电影的名称来识别记录。这样,我将拥有用于创建数据库的唯一词典记录 要实现这一目标的步骤。
1)使用另一个StackOverflow answer但稍加修改,我得到了文件列表及其修改日期(在Windows上,该日期更好地反映了文件的拍摄日期,而不是创建日期,即创建日期) Windows计算机):

from stat import S_ISREG, ST_MTIME, ST_MODE
import os, sys, time
destdir="C:/Pictures/jiphone/jiPhone-2017"
# get all entries in the directory w/ stats
entries = (os.path.join(destdir, fn) for fn in os.listdir(destdir))
entries = ((os.stat(path), path) for path in entries)

# leave only regular files, insert creation date
entries = ((stat[ST_MTIME], path)
           for stat, path in entries if S_ISREG(stat[ST_MODE]))

2)然后我创建了字典

dict_J_iphone_2017=dict()

3)然后在For循环中,我从文件名中创建了recFile(文件记录),删除了句号(但是您可以从循环中的任何内容中获取它)

for cdate, path in sorted(entries):
    fullDate=time.ctime(cdate)
    basePath=os.path.basename(path)
    recFile=basePath.replace(".","")
    etc

4)然后,我为每张照片/电影创建字典条目

  dict_J_iphone_2017[recFile]={'name': recName, 'date': recDate, 'time':recTime, 'day': recDay,'tags': [], 'folder': recFolder, 'comment': recComment, 'rating': 0}

我可以通过输入文件的实际名称来引用字典中的每个项目。

print(dict_J_iphone_2017['JiP6_1291PNG']
#{'date': '5-Mar-2017', 'folder': 'C:/Pictures/jiphone/jiPhone-2017', 'tags': [], 'comment': 'PNG', 'name': 'JiP6_1291.PNG', 'time': '16:19:19', 'rating': 0, 'day': 'Sun '}

希望有帮助。