我是一个Python新手,我有几个问题。在下面的例子中,我想在for循环外部的for循环中使用x的输出,同时保持其格式。我试图将它附加到循环外的列表中,但是当我打印附加的变量时,它不会以相同的格式显示。
问题1:如何以相同的格式使用循环外部循环的输出?
问题2:如何在保持格式的同时将for循环的输出分配给循环外的变量?
问题3:有没有快速计算最终输出中唯一颜色数量的方法?例如红色:2,蓝色:2,绿色:1,橙色:1,白色:2,黑色:1,紫色:2,靛蓝:1
file = '''2016-07-12 08:00 Red Blue Green
2016-07-12 08:00 Red Orange White
2016-07-12 09:00 Blue Black Purple
2016-07-12 10:00 Indigo Purple White'''
split_file = file.split('\n')
my_list = []
for i in split_file:
x = (str(i).split())
my_list.append(x)
print(my_list)
for中的输出如下所示:
['2016-07-12', '08:00', 'Red', 'Blue', 'Green']
['2016-07-12', '08:00', 'Red', 'Orange', 'White']
['2016-07-12', '09:00', 'Blue', 'Black', 'Purple']
['2016-07-12', '10:00', 'Indigo', 'Purple', 'White']
追加后的输出如下所示:
[['2016-07-12', '08:00', 'Red', 'Blue', 'Green'], ['2016-07-12', '08:00', 'Red', 'Orange', 'White'], ['2016-07-12', '09:00', 'Blue', 'Black', 'Purple'], ['2016-07-12', '10:00', 'Indigo', 'Purple', 'White']]
答案 0 :(得分:0)
当您致电.split()
时,您实际上正在创建两个列表。如果要将它们存储在列表中,则需要第二次循环。
my_list = []
for i in split_file:
x = (str(i).split())
for split in x:
my_list.append(split)
print(my_list)
关于您的第三个问题,我建议您根据答案的评论中的建议使用collections.counter
:
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
print cnt
答案 1 :(得分:0)
您拥有的第一个输出是x逐行打印。第二个输出包含数组中的所有x,因此它们显示逗号分隔的原因。如果要以相同的格式打印它们,则必须在my_list上运行for循环,并在每行上调用print而不是打印整个数组。
所以,
for element in my_list:
print(element)