Can post a code but afraid of plagiarism
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Wed Jan 22 19:01:20 EST 2014
On Wed, 22 Jan 2014 00:36:17 -0800, indar kumar wrote:
> So my question is if I am giving multiple inputs(a new device say for
> example) in a loop and creating a database(dictionary) for each new
> devices for example. I want subsequent devices to save their data(values
> only not keys) to the database of each of the already existing devices.
> How can I do that? Any hint?I have been stuck here for 3 days.
Short version:
in your dict (database), instead of storing the value alone, store a list
containing each of the values.
Longer version:
Here you have a dict as database:
db = {}
Here you get a key and value, and you add then to the db:
# key is 23, value is "hello"
if 23 in db:
db[23].append("hello")
else:
db[23] = ["hello"]
Later, you can see if the key already exists:
if 23 in db:
print("Key 23 already exists")
Or you can add a second value value to the same key:
if 23 in db:
db[23].append("goodbye")
else:
db[23] = ["goodbye"]
which can be written more succinctly as:
db.setdefault(23, []).append("goodbye")
Now you can check whether the key has been seen once or twice:
if len(db[23]) == 1:
print("key 23 has been seen only once")
else:
print("key 23 has been seen twice or more times")
Does this answer your question?
--
Steven
More information about the Python-list
mailing list