On 13/04/2013 15:34, Saad Bin Javed wrote:
I ran into a bit of problem with my revised code based on Steven's
suggestions.
lst = ['', 'Thu Apr 04 Weigh In', '', 'Sat Apr 06 Collect
NIC', ' Finish PTI Video', '', 'Wed Apr 10 Serum
uric acid test', '', 'Sat Apr 13 1:00pm Get flag from dhariwal', '',
'Sun Apr 14 Louis CK Oh My God', '', '']
lst = filter(None, lst)
lst = [item.split(' ') for item in lst]
lst = [item for sublist in lst for item in sublist]
lst = filter(None, lst)
This code would produce:
['Thu Apr 04', ' Weigh In', 'Sat Apr 06', ' Collect NIC', ' Finish PTI
Video', 'Wed Apr 10', ' Serum uric acid test', 'Sat Apr 13', ' 1:00pm',
'Get flag from dhariwal', 'Sun Apr 14', ' Download Louis CK Oh My God']
dict = {}
for item in lst:
if item.startswith(('Mon','Tue','Wed','Thu','Fri','Sat','Sun')):
dict.update({lst[lst.index(item)].lstrip():
lst[lst.index(item)+1].lstrip()})
print dict
Such a dictionary would only add the item next to the date as the value.
But from the list you can see 'Sat Apr 06' has two items on the agenda
while 'Sat Apr 13' show item and a time. So you can understand why such
a dict would be useless.
I want all agenda items joined as a comma delimited string and added to
the date key as a value. I've been mulling over how to go about it. One
idea was to get indices of dates in the list and add all items in
between them as values.
index_keys = [] #0, 2, 5, 7, 9
index_values = [] #1, 3, 4, 6, 8, 10
for item in lst:
if
item.lstrip().startswith(('Mon','Tue','Wed','Thu','Fri','Sat','Sun')):
index_keys.append(lst.index(item))
else:
index_values.append(lst.index(item))
But I can't quite get it to understand that i want all items between
position 0 and 2 in the list to be assigned to item at 0 in the
dictionary and so forth.
Ideas?
Don't fight Python, unlike this chap[1] :) Basically if you're looping
around any data structure you rarely need to use indexing, so try this
approach.
for item in lst:
if item.startswith(('Mon','Tue','Wed','Thu','Fri','Sat','Sun')):
myDict[item] = []
saveItem = item
else:
myDict[saveItem].append(item.strip())
[1]http://www.bbc.co.uk/news/world-us-canada-22118773
--
If you're using GoogleCrap™ please read this
http://wiki.python.org/moin/GoogleGroupsPython.
Mark Lawrence
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor