-1
Ich habe eine Frage in Bezug auf Python-Speicherverwaltung.Speicherverwaltung für Variablen in Python
Ich habe den folgenden Code:
data1 = [
{u'name': u'9_1', u'value': u'sunday'},
{u'name': u'9_1', u'value': u'monday'},
{u'name': u'9_1', u'value': u'wednesday'},
{u'name': u'16_1', u'value': u'monday'},
{u'name': u'16_1', u'value': u'tuesday'},
{u'name': u'9_2', u'value': u'monday'},
{u'name': u'9_2', u'value': u'tuesday'},
{u'name': u'9_2', u'value': u'wednesday'},
{u'name': u'16_2', u'value': u'tuesday'},
{u'name': u'16_2', u'value': u'wednesday'},
{u'name': u'9_3', u'value': u'wednesday'},
{u'name': u'9_3', u'value': u'saturday'},
{u'name': u'16_3', u'value': u'thursday'},
{u'name': u'16_3', u'value': u'saturday'},
{u'name': u'9_5', u'value': u'monday'},
{u'name': u'9_5', u'value': u'wednesday'},
{u'name': u'16_5', u'value': u'monday'},
{u'name': u'16_5', u'value': u'tuesday'},
{u'name': u'16_5', u'value': u'wednesday'},
{u'name': u'17_5', u'value': u''},
{u'name': u'18_5', u'value': u''}
]
multi_select_ids = ['9', '16']
days_of_week = dict.fromkeys(multi_select_ids,{})
print "before loop:", days_of_week
for data in data1:
if data['value']:
name = data['name'].split("_")
if len(name) > 1:
ele_id = name[0]
row_id = name[1]
if ele_id in multi_select_ids:
temp = days_of_week[ele_id]
try:
temp[row_id] = temp[row_id] + ',' + data['value']
except:
temp[row_id] = data['value']
print days_of_week
Hier Python gleichen Speicherplatz für beide dicts verwendet,
Wie dieses Problem zu überwinden?
Ausgabe:
{
'16': {
u'1': u'sunday,monday,wednesday,monday,tuesday',
u'2': u'monday,tuesday,wednesday,tuesday,wednesday',
u'3': u'wednesday,saturday,thursday,saturday',
u'5': u'monday,wednesday,monday,tuesday,wednesday'
},
'9': {
u'1': u'sunday,monday,wednesday,monday,tuesday',
u'2': u'monday,tuesday,wednesday,tuesday,wednesday',
u'3': u'wednesday,saturday,thursday,saturday',
u'5': u'monday,wednesday,monday,tuesday,wednesday'
}
}
gewünschte Ausgabe:
{
'16': {
u'1': u'monday,tuesday',
u'2': u'tuesday,wednesday',
u'3': u'thursday,saturday',
u'5': u'monday,tuesday,wednesday'
},
'9': {
u'1': u'sunday,monday,wednesday',
u'2': u'monday,tuesday,wednesday',
u'3': u'wednesday,saturday',
u'5': u'monday,wednesday'
}
}
Welche zwei Wörterbücher, und wie können Sie sagen? – DeepSpace
Wäre nützlich, um tatsächliche und gewünschte Ausgabe zu haben – abimelex
Ihre Frage ist wirklich nichts mit * "Speicherverwaltung" * zu tun, übrigens; Sie vergeben offensichtlich Referenzen auf das Original irgendwo, wo Sie stattdessen einen Verweis auf eine * Kopie * zuweisen sollten. – jonrsharpe