gpt4 book ai didi

python - 有效地从列表中删除重复项

转载 作者:行者123 更新时间:2023-11-30 21:50:44 25 4
gpt4 key购买 nike

晚上好。我有一个包含邮政编码和相关信息的 Excel 文件。这些邮政编码有很多重复项。我想通过将所有邮政编码放入一个不重复的列表中来找出我有哪些邮政编码。这段代码可以工作,但运行速度非常慢(花费了 100 秒以上),我想知道我可以做些什么来提高它的效率。

我知道每次都必须检查整个列表是否有重复项会导致效率低下,但我不确定如何解决这个问题。我也知道遍历每一行可能不是最好的答案,但我还是个新手,现在陷入困境。

提前致谢。

import sys
import xlrd

loc = ("locationOfFile")
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)

def findUniqueZips():
zipsInSheet = []
for i in range(sheet.nrows):
if str(sheet.cell(i,0).value) in zipsInSheet:
pass
else:
zipsInSheet.append(str(sheet.cell(i,0).value))
print(zipsInSheet)

findUniqueZips()

最佳答案

如果你想避免重复,那么你绝对应该考虑在 python 中使用集合。请参阅here

我要做的就是创建一个集合,然后将所有元素添加到一个集合中;请注意,集合是无序的、唯一的项目集合。添加所有数据后,您可以将集合中的所有元素添加到工作表中。因此,这避免了冗余数据。



import sys
import xlrd

loc = ("locationOfFile")
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)

def findUniqueZips():
zipsInSheet = []
data = set()

for i in range(sheet.nrows):
data.add(str(sheet.cell(i,0).value)

#now add all elements in the set to your sheet
for i in range(len(data)):
zipsInSheet.append(str(sheet.cell(i,0).value))
print(zipsInSheet)

findUniqueZips()

关于python - 有效地从列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com