使用Python SQLite3查询化学元素表Symbol列未出现的拉丁字母
完整实现代码
import sqlite3 import string # 生成A-Z全量大写字母集合 all_letters = set(string.ascii_uppercase) # 数据库查询逻辑 conn = sqlite3.connect('chemicals.sqlite') cur = conn.cursor() cur.execute('SELECT Symbol FROM chemicalElements') rows = cur.fetchall() conn.close() # 收集所有符号中出现过的字母(大小写不敏感统一转大写) used_letters = set() for (symbol,) in rows: for c in symbol: used_letters.add(c.upper()) # 计算未出现的字母,排序后输出 unused_letters = sorted(all_letters - used_letters) # 如需按顿号分隔的格式输出,打开下方注释 # print('、'.join(unused_letters)) print(unused_letters)
逻辑说明
- 直接调用标准库
string的ascii_uppercase生成全量A-Z大写字母,避免手动输入出错 - 遍历所有元素符号的每一个字符,统一转大写后存入集合自动去重,满足大小写不敏感的要求
- 用集合求差集的方式直接得到未出现的字母,计算效率高
- 最终输出结果默认排序,也可以根据需要调整输出格式
用你提供的示例数据运行时,最终得到的已使用字母集合为{'H','E','N','M','G'},差集即为除这5个字母外的所有拉丁字母,符合预期输出要求。
内容的提问来源于stack exchange,提问作者Ms Y
相关产品推荐
相关产品推荐

