关于Python的:如何打印出标签在每个迭代名称

How to print out name/label in each iteration

本问题已经有最佳答案,请猛点这里访问。

我有一个函数打印出文本的pos/neg/neu分数。

所以我的输出看起来是:

1
2
3
4
# of sentences: 100
Pos Tally: 25
Neg Tally: 50
Neu Tally: 25

但是,我没有对每一个文本都这样做,而是将文本放到一个列表中:

1
2
3
4
5
a ="How are you?"
b ="I am doing great."
c ="I am not doing well."

topics = [a,b,c]

为了让我的函数在给出计数之前打印出"a"、"b"、"c",我假设应该将标签放入一个列表中。

1
labels = ['a','b','c']

所以,我尝试了以下方法:

1
2
3
for i in topics:
    for label in labels:
        print(label, getSent(i))

这只会在每次POS/NEG/NEU计数后打印出整个标签。

我希望我的输出看起来像:

1
2
3
4
5
6
a
# of sentences: 1
Pos count: 1

b
# of sentences: 1

我该怎么做才能使这个工作成功?

谢谢。


您应该能够简单地使用zip并排迭代您的标签和主题,下面是一个示例(仅使用随机get_sent函数):

1
2
3
4
5
6
7
def get_sent(topic):
  return '
Positive: 1
'


for i, j in zip(topics, labels):
  print(j, get_sent(i))

输出:

1
2
3
4
5
6
7
8
a
Positive: 1

b
Positive: 1

c
Positive: 1