我想为插入空字典中的每个元素创建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()