通讯录模糊查询pyrhon
时间: 2024-11-11 11:42:07 浏览: 24
通讯录模糊查询在Python中通常通过数据结构如列表、字典或更复杂的数据存储系统(如SQLite数据库或Pandas DataFrame)来实现。如果你想对用户的联系人信息进行部分匹配搜索,可以按照以下步骤操作:
1. **列表/字典**:
如果数据是以列表的形式存储每个联系人的姓名和电话,你可以遍历列表,比较用户输入的关键字与每个联系人名的相似度。
```python
def search_contact(keyword, contacts):
results = []
for contact in contacts:
if keyword in contact['name']:
results.append(contact)
return results
# 示例
contacts = [{'name': '张三', 'phone': '13812345678'}, {'name': '李四', 'phone': '13909876543'}]
result = search_contact('张', contacts)
```
2. **SQLite查询**:
如果使用SQL数据库,可以用LIKE关键字来进行模糊查询,Python可通过sqlite3库操作。
```python
import sqlite3
conn = sqlite3.connect('contacts.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM contacts WHERE name LIKE ?", ('%' + keyword + '%',))
results = cursor.fetchall()
conn.close()
```
3. **Pandas DataFrame**:
对于大型数据集,可以使用Pandas库的`query()`函数,它支持复杂的布尔表达式。
```python
import pandas as pd
df_contacts = pd.read_csv('contacts.csv') # 假设数据已存储为CSV文件
result_df = df_contacts.query(f'name.str.contains("{keyword}")')
```
**相关问题--:**
1. 如何在Python中提高模糊查询性能?
2. 在处理大量数据时,如何优化模糊搜索算法?
3. 使用哪种Python库进行高效的通讯录模糊搜索?
阅读全文