I've got a string with words that are separated by spaces (all words are unique, no duplicates). I turn this string into list:
s = "#one cat #two dogs #three birds"
out = s.split()
And count how many values are created:
print len(out) # Says 192
Then I try to delete everything from the list:
for x in out:
out.remove(x)
And then count again:
print len(out) # Says 96
Can someone explain please why it says 96 instead of 0?
MORE INFO
Each line starts with '#' and is in fact a space-separated pair of words: the first in the pair is the key and second is the value.
So, what I am doing is:
for x in out:
if '#' in x:
ind = out.index(x) # Get current index
nextValue = out[ind+1] # Get next value
myDictionary[x] = nextValue
out.remove(nextValue)
out.remove(x)
The problem is I cannot move all key,value-pairs into a dictionary since I only iterate through 96 items.
You're not being specific. Why are you trying to delete everything in the out-list? Any if all you need to do is clear the out-list, why not just do this:
I think you actually want something like this:
What is this code doing? Let's break it down. First, we split
s
by whitespace intoout
as you had.Next we iterate over the pairs in
out
, calling them "x, y
". Those pairs become alist
of tuple/pairs.dict()
accepts a list of size two tuples and treats them askey, val
.Here's what I get when I tried it:
I believe you want following.
Or even better