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

Posted

技术标签:

【中文标题】Python - 尝试通过 for 循环创建字典【英文标题】:Python - Trying to create a dictionary through a for loop 【发布时间】:2017-09-16 06:50:05 【问题描述】:

我正在尝试使用 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 循环中有点不清楚,我也很抱歉。这不是实际的代码,而只是我正在寻找的内容的一般概念。谁能帮我?谢谢。

【问题讨论】:

【参考方案1】:

您通过执行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

【讨论】:

或者,for idx, item in enumerate list: d[index] = item 另外,d = k: v for k, v in enumerate(list) 【参考方案2】:

你可以使用枚举:

list = [102, 232, 424]
d = 

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

或者,使用字典理解:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

范围内不需要0:dict(zip(range(len(list)), list))【参考方案4】:

这是一个更复杂的问题版本,但它本质上仍然是创建一个带有 for 循环的字典。我想在我的计算机上创建一个包含我所有照片/视频的数据库 - 其中有 1000 个,并为每张使用照片/电影名称来识别记录的照片创建一个字典记录。这样我就会有唯一的字典记录来创建数据库 实现这一目标的步骤。 1) 使用另一个*** 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 '

希望对您有所帮助。

【讨论】:

以上是关于Python - 尝试通过 for 循环创建字典的主要内容,如果未能解决你的问题,请参考以下文章

使用字典 get() 作为函数从地图创建 Python 列表与使用 for 循环创建字典 get() 列表

使用 for 循环遍历 Python 字典的 3 种方法 !

使用 for 循环和函数创建字典

如何将创建多个字典的 for 循环的输出加入/合并到一个大字典中

Python for循环通过序列索引迭代

flask学习:for循环遍历