Python不在数组中不工作

2024-09-28 05:27:33 发布

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

我有一个循环来获取公司名称,并将它们存储在数组中。虽然有时公司名称会被贴两次,我不想写到文件里。在

我检查名称是否不在数组中,但它总是返回false,即使我打印出数组中所有的值都在那里。在

if phone != None:
    websiteArr.append(companyName)
    #print(websiteArr)
    if companyName not in websiteArr:
        f.write(re.sub('\s+',' ',str(companyName)) + ',' + phone.lstrip())
        print(companyName)
        companyName = ''
        phone = ''
    else:
        print('errorr')
        print(websiteArr)
else:
    continue

Tags: 文件in名称nonefalseifnotphone
1条回答
网友
1楼 · 发布于 2024-09-28 05:27:33

在检查列表中是否存在该项之前,不应将该项附加到列表中:

        if phone:
            #print(websiteArr)
            if companyName not in websiteArr:
                websiteArr.append(companyName)
                f.write(re.sub('\s+',' ',str(companyName)) + ',' + phone.lstrip())
                print(companyName)
                companyName = None
                phone = None
            else:
                print('errorr')
                print(websiteArr)
        else:
            continue

或者,使用字典:

^{pr2}$

您会注意到我没有费心检查是否存在,因为python字典的键/值对可以延迟地创建,这意味着如果您在赋值语句中引用一个键,即使它还不存在,它也会存在。在

以上相当于:

websites.add(companyName, phone.lstrip())

但是如果密钥已经存在,add方法将引发错误,而lazy方法只是在赋值时重写现有的键/值对。对于获取值,您可能需要检查是否存在键,除非您正在迭代元组键/值对。在

for company,phone in websites.iteritems()
    f.write(re.sub('\s+',' ', company) + ',' + phone())

相关问题 更多 >

    热门问题