【发布时间】:2015-01-22 02:02:07
【问题描述】:
我正在尝试在 Python 中打印出一个中等大小的列表,我正在做的是在一行上打印出整个列表来测试程序,以确保将正确的数据放入列表中正确的顺序。我读入 2 个文件并将所有数据放入 2 个字典中。然后,我将字典分成几部分,并将所有相似的数据放入一个列表中。我是 Python 的超级新手,这是我在字典上找到的教程,我有点卡住了。这一行将列表打印在一行上:
print '[%s]' % ', '.join(map(str, player_list))
但是这一行将列表的每个值打印在我不想要的单独行上:
print '[%s]' % ', '.join(map(str, army_list))
如果需要,这是我添加到列表中的代码:
import collections
import operator
terridict = {}
gsdict = {}
terr_list = []
player_list = []
army_list = []
list_length = []
total_territories = 0
with open('territories.txt', 'r') as territory:
for line in territory:
terridict["territory"], terridict["numeric_id"], terridict["continent"] = line.split(',')
with open('gameState.txt', 'r') as gameState:
for line in gameState:
gsdict["numeric_id"], gsdict["player"], gsdict["num_armies"] = line.split(',')
terr_num = gsdict["numeric_id"]
player_num = gsdict["player"]
army_size = gsdict["num_armies"]
if terr_num >= 1 and player_num >= 1 and army_size >= 1:
terr_list.append(terr_num)
player_list.append(player_num)
army_list.append(army_size)
player_list.sort()
counter = collections.Counter(player_list)
print (counter)
total_territories = total_territories + 1
x = counter
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
counter = sorted_x
print terr_num, player_num, army_size
print counter
print "Number of territories: %d" % total_territories
print '[%s]' % ', '.join(map(str, terr_list))
print '[%s]' % ', '.join(map(str, player_list))
print '[%s]' % ', '.join(map(str, army_list))
【问题讨论】:
-
必须只在一行上吗?如果您真的只是想找出它们是否按正确的顺序,只需遍历列表即可。它将为您提供第一个值到最后一个值。
for i in player_list: print i
标签: python list dictionary printing