Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spaces in Python Dictionary Keys

I know you can have spaces in Python dictionary keys, but is that considered bad programming? I couldn't find anything in the PEPs about this.

Edit for clarification: On a project I'm doing, I'm working on something that parses the scoreboard output from Apache's mod_status (see example output below.) I'm just trying to figure out the best practice. Should I end up with this:

workers = {'W': 1,            '_': 9,            ...} 

or this:

workers = {'Sending Reply': 1,            'Waiting for Connection': 9,            ...} 

Example mod_status output:

_....___W____._................................................. ................................................................ ................................................................ ................................................................ Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of worker, "." Open slot with no current process 
like image 517
Mark Avatar asked Nov 20 '12 14:11

Mark


People also ask

Can Python dictionary key have spaces?

This answer may give the correct "final" answer (yes, spaces are allowed in dictionary key strings), but the reasoning is incorrect. The reason that spaces are allowed inside dictionary key strings has nothing to do with a style guide.

How do you remove spaces from a dictionary key?

Let's see how to remove spaces from dictionary keys in Python. Method #1: Using translate() function here we visit each key one by one and remove space with the none. Here translate function takes parameter 32, none where 32 is ASCII value of space ' ' and replaces it with none.

What is the space complexity of a dictionary in python?

If you are using the dictionary as you would use a hash table then the space complexity is O(n).


1 Answers

You can use tools like pylint to check whether your code is PEP8 compatible or not :

so I tried something like :

M_D1 = {" foo bar ":1, " a bc":2, " ":3} 

and pylint gave me 10/10 rating, so I guess it has no issues with the spaces used in keys.

like image 99
Ashwini Chaudhary Avatar answered Sep 29 '22 14:09

Ashwini Chaudhary