如何修正格式,使字符串在for循环中不重复?

2024-10-02 02:34:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是,当我运行代码时,我的格式会为每个输出重复两次相同的名称,如下所示:

MW SCHEDULE OF ['RAM PAR 3500', 'RAM PAR 4500']  is 136.0 MW 
MW SCHEDULE OF ['RAM PAR 3500', 'RAM PAR 4500']  is 136.0 MW
FROM_BUS=[126,126]
TO_BUS=[126,126]
CKT=[1,2]
NAME=['RAM 1', 'RAM 2']
for FROM_BUS,TO_BUS,CKT in zip(FROM_BUS, TO_BUS, CKT):
    [ierr, cmpval] = psspy.brnflo(FROM_BUS,TO_BUS,str(CKT))
    cmpvali=abs(cmpval.real)
    output10='MW SCHEDULE OF {}  is {} MW '.format(NAME,(round(cmpvali,0)))
    print(output10)

相反,我希望我的结果是这样的:

MW SCHEDULE OF ['RAM PAR 3500']  is 136.0 MW
MW SCHEDULE OF ['RAM PAR 4500']  is 136.0 MW

Tags: ofto代码namefromisrammw
2条回答

如果zip函数缺少NAME,请尝试以下操作:
(还清理了一些代码并修复了变量命名)

FROM_BUS = [126, 126]
TO_BUS = [126, 126]
CKT = [1, 2]
NAME = ['RAM 1', 'RAM 2']
for from_bus, to_bus, ckt, name in zip(FROM_BUS, TO_BUS, CKT, NAME):
    [ierr, cmpval] = psspy.brnflo(from_bus, to_bus, str(ckt))
    cmpvali = abs(cmpval.real)
    output10 = 'MW SCHEDULE OF {}  is {} MW '.format(name, (round(cmpvali, 0)))
    print(output10)

NAMEcmpvali的关系如何?您没有迭代NAME中的值,因此它当然会同时打印这两个值

我不知道你想达到什么目的,但也许下面是你想要的

FROM_BUS=[126,126]
TO_BUS=[126,126]
CKT=[1,2]
NAME=['RAM 1', 'RAM 2']
# ADD NAME TO zip()
for FROM_BUS,TO_BUS,CKT,NAME in zip(FROM_BUS, TO_BUS, CKT, NAME):
    [ierr, cmpval] = psspy.brnflo(FROM_BUS,TO_BUS,str(CKT))
    cmpvali=abs(cmpval.real)
    output10='MW SCHEDULE OF {}  is {} MW '.format(NAME,(round(cmpvali,0)))
    print(output10)

相关问题 更多 >

    热门问题