自动插入字典并写入文件的ID

  • 本文关键字:文件 ID 插入 字典 python-3.x
  • 更新时间 :
  • 英文 :


我想为插入空字典中的每个元素创建ID,然后将其写入文件中,如下图所示。但它不起作用。有人帮我修吗?

dict ={}
ids = 0
line_count = 0 
fhand = input('Enter the file name:')
fname = open(fhand,'a+')
for line in fname:
if line.split() == []:
ids = 1
else:
line_count +=1
ids = line_count +1
n = int(input('How many colors do you want to add?'))
for i in range (0,n):
dict['ID:'] = ids + 1
dict['Color:'] = input('Enter the color:')
for key,value in dict.items():
s = str(key)+' '+str(value)+'n'
fname.write(s)
fname.close()
print('Done!') ```

Output should be: 
ID : 1
Color: red
ID : 2
Color : rose 
ID : 3
Color : blue

不确定我是否明白你的意思,但。。。

字典是由<键,值>成对。

假设你有一本字典:

thisdict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

如果你想为每个密钥创建一个ID(出于特定原因(,你可以使用一个for循环,比如:

for key in thisdict.keys():
createIdFunction(key)

并且有一个createIdFunction,它将根据你想要的任何东西分配一个ID。

建议:字典只能保存唯一的密钥,所以也许你可以使用它们自己的密钥作为ID。

但是,如果你的字典是空的,那么就没有理由为该键提供ID,对吧

你是说你的id没有增加?我认为您没有重新分配变量";ids";在循环中,您可以修改代码如下:

dict ={}
ids = 0
line_count = 0 
fhand = input('Enter the file name:')
fname = open(fhand,'a+')
for line in fname:
if line.split() == []:
ids = 1
else:
line_count +=1
ids = line_count +1
n = int(input('How many colors do you want to add?'))
for i in range (0,n):
ids += 1 # modified
dict['ID:'] = ids # modified
dict['Color:'] = input('Enter the color:')
for key,value in dict.items():
s = str(key)+' '+str(value)+'n'
fname.write(s)
fname.close()

最新更新