我知道有人可能会认为这个问题已被回答here,但它并没有回答我想要实现的目标。
我有一个电话号码列表,一个非常大的电话号码,其中很多都以08
开头,并且有很多重复,这就是我想删除的内容。现在我需要将它们放在list
或set
中,以便我可以在我的程序中使用它们,但它会返回无效的令牌,如下图所示:
Python假设任何以0
开头的八进制数。我如何设置一个意味着绕过这个并将这些数字放在一个列表然后放在一个集合中?
答案 0 :(得分:2)
如果您需要在08之前添加它们,请使用字符串而不是整数。
a = ["08123","08234","08123"]
a = list(set(a)) # will now be ["08123","08234"]
由于(正如您所说)您没有简单的方法用引号包围众多数字,请转到http://www.regexr.com/并输入以下内容:
表达式:([0-9]+)
文字:你的号码
替换(屏幕底部的可展开窗格:"$&"
答案 1 :(得分:2)
阅读您的手机输入文件,将每部手机保存为string
至set
,然后由于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