How to fill in a dictionary with key and value from a string?
tmrsg11 at gmail.com
Sun Apr 1 23:46:58 EDT 2018
Yes, you see right through me!
I was able to conquer it, there's probably better ways:
self.myDict = dict(zip(string.ascii_lowercase + string.ascii_uppercase,
string.ascii_lowercase[shift:26] + string.ascii_lowercase[:shift] +
string.ascii_uppercase[shift:26] + string.ascii_uppercase[:shift]))
How to debug a particular chunk of code?
Everything in OOP is self.myDict, self.shift_dict. So, I must run the
entire code to test.
I just want to try myDict('hello', 4), shift_dict(4), like how you would do
in C language.
On Sun, Apr 1, 2018 at 11:13 PM, Steven D'Aprano <
steve+comp.lang.python at pearwood.info> wrote:
> On Sun, 01 Apr 2018 22:24:31 -0400, C W wrote:
> > Thank you Steven. I am frustrated that I can't enumerate a dictionary by
> > position index.
> Why do you care about position index?
> > Maybe I want to shift by 2 positions, 5 positions...
> Sounds like you are trying to program the Caesar Shift cipher, am I right?
> You probably should be manipulating *strings*, not dicts. Do these
> examples help?
> py> import string
> py> letters = string.ascii_lowercase
> py> letters
> py> letters[1:] + letters[:1]
> py> letters[5:] + letters[:5]
> py> letters[23:] + letters[:23]
> Slice your strings into the order that you want, then put them in a dict
> for fast lookups by character.
> > I want to know/learn how to manipulate dictionary with loop and by its
> > position location.
> Dict entries don't have a position location except by accident, or in
> sufficiently new versions of Python, by insertion order.
> If you want to process dict entries in a specific order, operate on the
> dict in whichever order you want:
> ordered_keys = 'azbycxdwevfugthsirjqkplomn'
> for k in ordered_keys:
> In Python 3.7, dicts will keep their insertion order, so long as you
> don't delete any keys.
More information about the Python-list