python - 列出子项中没有重复项
问题描述
我正在开发一个 python 脚本,该脚本从一个非常大的 html 文件中提取特定数据并将其写入 CSV。提取的数据是订单号、买家姓名和电子邮件地址。我不想包含任何包含重复人员的行,无论他们是否下了多个订单。
样本数据:
['10001', 'Tom', 'tom@example.com']
['10002', 'Jane', 'jane@example.com']
['10003', 'Bob', 'bob@example.com']
上面的三行已经在一个名为 orders 的列表中。然后我们遇到了这个信息:
number = '10004'
name = 'Jane'
email = 'jane@example.com'
基于电子邮件地址已在现有行中使用的事实,我不想将该行添加到列表中。
我的代码如下所示:
for order in orders:
if [re.compile(r'+.'), re.compile(r'+.'), email] in rows: continue
rows.append(number, name, email)
解决方案
在处理列表时将所有姓名和电子邮件地址保存在集合中,并检查当前姓名或电子邮件是否在集合中。
names = set()
emails = set()
for number, name, email in order:
if name in names or email in emails:
continue
names.add(name)
emails.add(email)
rows.append([number, name, email])
推荐阅读
- pandas - 使用工作表名称进行操作后如何写入相同的excel文件
- javascript - 从 React 在 Node.js 中上传文件
- go - 如何将 Socks4 与 http 客户端一起使用
- android - 请求 SD 卡的写入权限
- c# - 返回单个正则表达式匹配的命名捕获组名称和值
- for-loop - 在 gnuplot 中仅更改一个数据点的颜色
- r - R:带有条件词的gsub?
- ruby-on-rails - 使用 Active Storage 和 wicked_pdf gem 保存 PDF
- java - 该网站不会让我在没有错误的情况下在弓中输入代码
- amazon-dynamodb - api网关获取项目dynamodb配置