Hello,
Here is what I have so far:
mylist = [{'index': 0, 'title': 'Association of British Travel Agents',
'selected': False, 'edit_row': '?edit_affiliation=0', 'affiliation': 'ABTA',
'affiliation_no': u'G3903'}, {'index': 1, 'title': 'Appointed Agents of
IATA', 'selected': False, 'edit_row': '?edit_affiliation=1', 'affiliation':
'IATA', 'affiliation_no': u'none'}, {'index': 0, 'title': 'Association of
Airline Cons.', 'selected': False, 'edit_row': '?edit_affiliation=0',
'affiliation': 'AAC', 'affiliation_no': u'sss'}, {'index': 1, 'title':
'Association of British Travel Agents', 'selected': False, 'edit_row':
'?edit_affiliation=1', 'affiliation': 'ABTA', 'affiliation_no': u'zser'}]
key = 'affiliation_no'
my_dup_keys = []
merged_list = []
mykeys = [item['affiliation'] for item in mylist]
for x in mykeys:
if mykeys.count(x) >= 2:
my_dup_keys.append(x)
for item in mylist:
if item['affiliation'] in set(my_dup_keys):
merged_list.append(item)
values = [d[key] for d in merged_list if d.has_key(key)]
for dict in merged_list:
dict[key] = values
mylist.append(dict)
print mylist
[{'index': 0, 'title': 'Association of British Travel Agents', 'selected':
False, 'edit_row': '?edit_affiliation=0', 'affiliation': 'ABTA',
'affiliation_no': [u'G3903', u'zser']}, {'index': 1, 'title': 'Appointed
Agents of IATA', 'selected': False, 'edit_row': '?edit_affiliation=1',
'affiliation': 'IATA', 'affiliation_no': u'none'}, {'index': 0, 'title':
'Association of Airline Cons.', 'selected': False, 'edit_row':
'?edit_affiliation=0', 'affiliation': 'AAC', 'affiliation_no': u'sss'},
{'index': 1, 'title': 'Association of British Travel Agents', 'selected':
False, 'edit_row': '?edit_affiliation=1', 'affiliation': 'ABTA',
'affiliation_no': [u'G3903', u'zser']}, {'index': 0, 'title': 'Association
of British Travel Agents', 'selected': False, 'edit_row':
'?edit_affiliation=0', 'affiliation': 'ABTA', 'affiliation_no': [u'G3903',
u'zser']}, {'index': 1, 'title': 'Association of British Travel Agents',
'selected': False, 'edit_row': '?edit_affiliation=1', 'affiliation': 'ABTA',
'affiliation_no': [u'G3903', u'zser']}]
This sort of works but I want to return a list that updates 'mylist' not
append to it, so I will get:
[{'index': 0, 'title': 'Association of British Travel Agents', 'selected':
False, 'edit_row': '?edit_affiliation=0', 'affiliation': 'ABTA',
'affiliation_no': [u'G3903', u'zser']}, {'index': 1, 'title': 'Appointed
Agents of IATA', 'selected': False, 'edit_row': '?edit_affiliation=1',
'affiliation': 'IATA', 'affiliation_no': u'none'}, {'index': 0, 'title':
'Association of Airline Cons.', 'selected': False, 'edit_row':
'?edit_affiliation=0', 'affiliation': 'AAC', 'affiliation_no': u'sss'}]