为什么输出是数据文件test.txt的最后一行?

时间:2015-06-05 02:51:07

标签: python loops

f_user = []
twitter_dict = {}
twitter_test = {}
fields="bid,uid,username"
a = fields.split(',')

with open('twitter_test.txt','r') as f:
    f_text = f.readlines()
    for i in range(len(f_text)):
        f_text[i] = f_text[i].split(',')

        for j in range(len(a)):
            twitter_dict[a[j]] = f_text[i][j][1:-1]
        twitter_test[i] = twitter_dict

for i in range(len(twitter_test)):
    print twitter_test[i]['username']

1 个答案:

答案 0 :(得分:0)

for i in range(len(f_text)):
    ...
    twitter_test[i] = twitter_dict

twitter_test的每个条目都是对同一字典twitter_dict的引用。列表的每个位置都是相同的。它没有分配twitter_dict副本,这会使每个条目都不同。

然后,twitter_test上的循环会一遍又一遍地打印相同的东西,这是很自然的。