Python“SyntaxError:以0(零)开头的数字上的无效标记”

2024-05-14 02:53:44 发布

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

我知道有人可能认为这个问题已经得到了回答,但它并不能回答我想要实现的目标。

我有一个电话号码列表,一个很大的,很多都是从08开始的,有很多重复,这就是我要删除的。现在我需要将它们放在listset中,这样我就可以在程序中使用它们,但它返回的是无效的标记,如下图所示:

enter image description here

Python假设以0开头的任何内容都是八进制的。我如何设置一个方法来绕过这一点,并将这些数字放在一个列表中,然后放在一个集合中?


Tags: 方法标记程序内容目标列表电话号码数字
2条回答

如果您需要在08之前将它们前置,请使用字符串而不是int。

a = ["08123","08234","08123"]
a = list(set(a)) # will now be ["08123","08234"]

由于(如您所说)您没有一种简单的方法用引号括住众多数字,请转到http://www.regexr.com/并输入以下内容:

表达式:([0-9]+)

文字:您的号码

替换(屏幕底部的可展开窗格:"$&"

读取您的电话输入文件,将每个电话另存为stringset,然后将删除重复项,因为set只保留唯一元素,您可以对它们进行进一步的操作。

def get_unique_phones_set():
    phones_set = set()
    with open("/path/to/your/duplicated_phone_file", "r") as inputs:
        for phone in inputs:
            # phone is read as a string
            phones_set.add(phone.strip())
    return phones_set

相关问题 更多 >