'How to strip part of a string in dictionary key
I have a dictionary like this:
{'Country - USA': 'Approved',
'Country - Italy': 'Approved'}
I want to remove the from it Country - string.
The output should be:
{'USA':'Approved',
'Italy':'Approved'}
I tried to use dict.items() somehow but I didn't succeed
Solution 1:[1]
You're on the right trail with dict.items(). Here's a dictionary comprehension that will get you what you want:
d = {'Country - USA': 'Approved', 'Country - Italy': 'Approved'}
new = {key.split()[-1]:value for key, value in d.items()}
print(new)
outputs:
{'USA': 'Approved', 'Italy': 'Approved'}
We're taking the value of each key, splitting it on whitespace (the default argument), and taking the last piece. Of course, this will only work if the country has a 1-word name.
Another option is to simply remove "Country - ":
{key.lstrip("Country - "):value for key, value in d.items()}
or you can go by index:
{key[10:]:value for key, value in d.items()}
Solution 2:[2]
You can do with this code
x = {'Country - USA': 'Approved', 'Country - Italy': 'Approved'}
index_position = len('Country - ') - 1
x = {key[index_position:]: value for key, value in x.items()}
Solution 3:[3]
str_to_delete = "Country - "
d = {'Country - USA': 'Approved', 'Country - Italy': 'Approved'}
d = {
country.replace(str_to_delete, ""): value
for country, value in d.items()
}
print(d) # {'USA': 'Approved', 'Italy': 'Approved'}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | MattDMo |
| Solution 2 | Sanath Manavarte |
| Solution 3 | enamya |
