I have a big list like the below one:
my_list = ['name1', 'name2', 'sth1', 'sth2', 'sth2_suffix', 'sth1_suffix', 'name2_suffix', 'name1_suffix']
and I want to make a dictionary of it like this:
my_dict = {'name1': 'name1_suffix',
'name2': 'name2_suffix',
'sth1': 'sth1_suffix',
'sth2': 'sth2_suffix'}
This means there are two types of elements: regular simple ones and the other ones with a fixed suffix that I want as keys or values.
>Solution :
You can just "ignore" the suffix elements and add them manually as values to the original items.
From Python 3.9, you can use the removesuffix string method:
my_list = ['name1', 'name2', 'sth1', 'sth2', 'sth2_suffix', 'sth1_suffix', 'name2_suffix', 'name1_suffix']
d = {item.removesuffix("_suffix"): item + "_suffix" for item in my_list}
print(d)
For other versions, you can filter the list:
my_list = ['name1', 'name2', 'sth1', 'sth2', 'sth2_suffix', 'sth1_suffix', 'name2_suffix', 'name1_suffix']
d = {}
for item in filter(lambda s: not s.endswith("_suffix"), my_list):
d[item] = item + "_suffix"
print(d)