有人可以解釋爲什麼這兩個不同的代碼示例給出不同的輸出?我對第一個樣本爲何會在所有月份附加「陽光」和「雲朵」感到困惑,這不是我想要的。我想要第二個樣本的輸出。但是,我想將變量「forecast」分配給weatherReport [「months」] [month],而不是其值。有沒有辦法以這種方式獲得Sample 2的輸出?Python:將變量名稱與變量值分配到字典值
樣品1:
weatherReport = {"months": {}}
forecast = []
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
for month in months[1:]:
weatherReport["months"][month] = forecast
weatherReport["months"]["June"].append("sunny")
weatherReport["months"]["December"].append("cloudy")
print weatherReport
輸出爲樣品1:
{'months': {'February': ['sunny', 'cloudy'], 'October': ['sunny', 'cloudy'], 'March': ['sunny', 'cloudy'], 'August': ['sunny', 'cloudy'], 'May': ['sunny', 'cloudy'], 'December': ['sunny', 'cloudy'], 'June': ['sunny', 'cloudy'], 'September': ['sunny', 'cloudy'], 'April': ['sunny', 'cloudy'], 'July': ['sunny', 'cloudy'], 'November': ['sunny', 'cloudy']}}
樣品2:
weatherReport = {"months": {}}
forecast = []
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
for month in months[1:]:
weatherReport["months"][month] = []
weatherReport["months"]["June"].append("sunny")
weatherReport["months"]["December"].append("cloudy")
print weatherReport
輸出爲樣品2:
{'months': {'February': [], 'October': [], 'March': [], 'August': [], 'May': [], 'December': ['cloudy'], 'June': ['sunny'], 'September': [], 'April': [], 'July': [], 'November': []}}
我明白了。有沒有其他方式獲得與第二代碼相同的解決方案,還是唯一的方法? – user3226932
@ user3226932列表複製:預測[:]並且您沒有參考,但是有副本。 – palsch