for,if循环语句可以不带大括号吗?在可以不带的情况下我的循环有错误吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for,if循环语句可以不带大括号吗?在可以不带的情况下我的循环有错误吗?相关的知识,希望对你有一定的参考价值。

请看下面一段代码:
int fun(STREC *a,STREC *b)
int i,j=0,max=a[0].s;
for(i=0;i<n;i++)
if(max<a[i].s)
max=a[i].s;


for(i=0;i<n;i++)
if(max==a[i].s)
b[j++]=a[i];
return j;



以下代码为答案
int fun(STREC *a,STREC *b)
int i,j=0,max=a[0].s;
for(i=0;i<n;i++)
if(max<a[i].s)
max=a[i].s;
for(i=0;i<n;i++)
if(max==a[i].s)
b[j++]=a[i];
return j;

求问大神我的第一段代码与第二段代码逻辑上的区别ps:我的代码运行结果是错误的

参考技术A 如果不用大括号括起来,那么只循环它下面的那一句
你这个例子由于if和else是嵌套的,所以算做了"1句"
就循环了整个if
else
参考技术B 有错误,不带大括号只运行后面一句 参考技术C 唯一的区别就在第二个循环里面的 return j; 这句,像 for if 语句如果不带括号只执行后面紧跟的一条语句,所以下面这段代码中的第二个循环中的 return j; 这句是在整个第二个循环结束后才执行的本回答被提问者采纳

如何删除字典外部大括号或将其不带大括号附加到列表中?

【中文标题】如何删除字典外部大括号或将其不带大括号附加到列表中?【英文标题】:How to remove dictionary outer curly bracket or append it without curly bracket into a list? 【发布时间】:2021-12-06 10:34:54 【问题描述】:
data = [

]
for x in range(0, len(directory_files)):
    # print(directory_files[x])
    # print(os.stat('Data\\' + directory_files[x]).st_size)
    img = ("Data\\" + directory_files[x])
    img_with_no_tag = directory_files[x]
    size_of_img = str(os.stat('Data\\' + directory_files[x]).st_size)
    img_capsulated = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
    img_capsulated_rgb = cv2.imread(img, cv2.IMREAD_COLOR)
    parent_tag = img_with_no_tag + size_of_img
    contourIndexNo = 0
    listTest = 
        img_with_no_tag + size_of_img: 
            'filename': img_with_no_tag,
            'size': size_of_img,
            'regions': [
            ],
            'file_attributes': 
                'caption': '',
                'public_domain': 'no',
                'image_url': ''
            
        
    
    # print(*listTest, sep="")
    data.append(listTest)

这就是我执行代码的方式。输出如下所示:

[

    "138_mask.png4776": 
        "filename": "138_mask.png",
        "size": "4776",
        "regions": [
            
                "shape_attributes": 
                    "name": "polygon",
                    "all_points_x": [
                        299,
                        294,
                        255,
                        245,
                        227,
                        229,
                        207,
                        200,
                        219,
                        209,
                        248,
                        251,
                        330,
                        341,
                        394,
                        407,
                        441,
                        447,
                        475,
                        485,
                        424,
                        438
                    ],
                    "all_points_y": [
                        517,
                        540,
                        534,
                        610,
                        610,
                        772,
                        778,
                        838,
                        843,
                        922,
                        928,
                        949,
                        955,
                        937,
                        943,
                        825,
                        827,
                        795,
                        799,
                        714,
                        673,
                        556
                    ]
                ,
                "region_attributes": 
                    "name": "rooftop",
                    "type": "rooftop",
                    "image_quality": 
                        "good": true
                    
                
            
        ],
        "file_attributes": 
            "caption": "",
            "public_domain": "no",
            "image_url": ""
        
    
,
----------------------------------------> cannot remove it
    "332_mask.png8391": 
        "filename": "332_mask.png",
        "size": "8391",
        "regions": [
            

....

但是,我想得到这样的期望输出:

"138_mask.png4776": 
    "filename": "138_mask.png",
    "size": 4776,
    "regions": [
        
            "shape_attributes": 
                "name": "polygon",
                "all_points_x": [
                    214,
                    209,
                    218,
                    200,
                    209,
                    223,
                    252,
                    300,
                    433,
                    455,
                    476,
                    407,
                    398,
                    328,
                    250
                ],
                "all_points_y": [
                    921,
                    921,
                    843,
                    835,
                    782,
                    613,
                    535,
                    518,
                    552,
                    680,
                    794,
                    861,
                    948,
                    962,
                    953
                ]
            ,
            "region_attributes": 
                "name": "not_defined",
                "type": "unknown",
                "image_quality": 
                    "good": true,
                    "frontal": true,
                    "good_illumination": true
                
            
        
    ],
    "file_attributes": 
        "caption": "",
        "public_domain": "no",
        "image_url": ""
    
,
"332_mask.png8391":   ------------------------------> here what I want
    "filename": "332_mask.png",
    "size": 8391,
    "regions": [
        
            "shape_attributes": 
                "name": "polygon",
                "all_points_x": [
                    137,
                    171,
                    395,
                    361
                ],
                "all_points_y": [
                    515,
                    389,
                    437,
                    567
                ]
            ,
            "region_attributes": 
                "name": "not_defined",
                "type": "unknown",
                "image_quality": 
                    "good": true,
                    "frontal": true,
                    "good_illumination": true
                
            
        ,
        
            "shape_attributes": 
                "name": "polygon",
                "all_points_x": [
                    567,
                    586,
                    814,
                    794
                ],
                "all_points_y": [
                    605,
                    464,
                    492,
                    636
                ]
            ,
            "region_attributes": 
                "name": "not_defined",
                "type": "unknown",
                "image_quality": 
                    "good": true,
                    "frontal": true,
                    "good_illumination": true
                
            
        ,
        
            "shape_attributes": 
                "name": "polygon",
                "all_points_x": [
                    451,
                    464,
                    739,
                    729
                ],
                "all_points_y": [
                    833,
                    677,
                    694,
                    845
                ]
            ,
            "region_attributes": 
                "name": "not_defined",
                "type": "unknown",
                "image_quality": 
                    "good": true,
                    "frontal": true,
                    "good_illumination": true
                
            
        
    ],
    "file_attributes": 
        "caption": "",
        "public_domain": "no",
        "image_url": ""
    

这意味着,在将字典值附加到列表中时,我想将它们放入,因为它们不是单独的对象,或者在将它们写入 json 文件时是否有替代方法?

我尝试对 json 文件写入提示进行功能操作,例如 .replace 或 remove,但没有奏效。

【问题讨论】:

你是如何生成输出的?如果使用看起来像你的json 模块,你应该明确说明是这种情况。 以下评论解决了问题,但是,我想就您的评论提供反馈。我使结构组织得不好。正如@Rabinzel 的澄清,我改变了骨架,现在它运行良好。感谢您的贡献。 【参考方案1】:

您显示为所需输出的是字典,因此只需创建字典而不是列表。那么这个字典的键就是你的图片名称,比如"138_mask.png4776"

data = 

然后稍后在您的代码中将条目添加到字典中:

data[img_with_no_tag + size_of_img] = 
    'filename': img_with_no_tag,
    'size': size_of_img,
    'regions': [],
    'file_attributes': 
        'caption': '',
        'public_domain': 'no',
        'image_url': ''
    

最后,如果你想把这本字典放在一个列表中,你总是可以这样做:

data = [data]

【讨论】:

如果我理解你的目标是正确的,@Jan Willem 做了正确的事。目前你有一个列表,该列表中的每一项都是一个字典。您的列表长度为 2(138_mask.png4776 和 332_mask.png8391),这就是为什么不能像在输出错误的代码中那样删除 ',' 和 '' 的原因。您想要一个包含一个项目的列表,其中包含一个带有 2 个键(138.png 和 332.png)的字典 非常感谢@Jan Willem 和 Rabinzel(抱歉没有注释,系统限制了我),现在它可以完美运行了。我试图执行一个 sn-p 将二进制掩码的对象坐标转换为 JSON 文件,以便以相反的顺序为将来的注入(多类和单类)提供 MaskRCNN 模型。我试图找到预制代码,但我找不到,我决定自己做。谢谢大家。

以上是关于for,if循环语句可以不带大括号吗?在可以不带的情况下我的循环有错误吗?的主要内容,如果未能解决你的问题,请参考以下文章

c#不带大括号的记录

React:带大括号的参数与不带大括号的参数之间的区别

在 ES6 中导入带或不带大括号 [重复]

如何删除字典外部大括号或将其不带大括号附加到列表中?

for()循环不带花括号应注意的地方

给定JSP代码如下所示,在括号处编写语句,可以使得程序运行后该页面输出的结果是1。