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 种方法 !