0

I am getting problem adding in new values if there is already a same key and neither can I create a new pair.

This is my code:

some_dirs = [
'/hosts/serverA/data/material_metal',
'/hosts/serverB/data/material_paper',
'/hosts/serverA/data/general_material',
'/hosts/users/data/testing']

some_dict = {}
for dir in some_dirs:
    server_name = dir.split('/')[2]
    if server_name.startswith('server'):
        dir_name = dir.split('/')[-1]
        some_dict[server_name] = dir_name

I am getting the following output:

{'serverA': 'general_material', 'serverB': 'material_paper'}

in which I am expecting the following (either 1 of the 2):

# Output 1
{'serverA': 'general_metal', 'serverB': 'material_paper', 'serverA': 'general_material'}
# Output 2
{'serverA': ['general_metal', 'general_material'], 'serverB': 'material_paper'}
dissidia
  • 1,531
  • 3
  • 23
  • 53

1 Answers1

0
some_dirs = [
'/hosts/serverA/data/material_metal',
'/hosts/serverB/data/material_paper',
'/hosts/serverA/data/general_material',
'/hosts/users/data/testing']
some_dict = {}
for dir in some_dirs:
    server_name = dir.split('/')[2]
    if server_name.startswith('server'):
        dir_name = dir.split('/')[-1]
        if server_name not in some_dict:
            some_dict[server_name] = [dir_name]
        else:
            some_dict[server_name].append(dir_name)
jacoblaw
  • 1,263
  • 9
  • 9