90、修改 PDB 文件读取器,使其忽略 PDB 文件中的空行和注释行。空行是指仅包含空格和制表符的行(即查看时看起来为空的行),注释是指以关键字 CMNT 开头的任何行。
以下是修改后的 Python 代码示例,用于实现忽略空行和注释行的功能:
with open('your_pdb_file.pdb', 'r') as pdb_file:
for line in pdb_file:
line = line.strip()
if line and not line.startswith('CMNT'):
# 处理非空且非注释行的逻辑
print(line)
这段代码会打开指定的 PDB 文件,逐行读取内容,去除每行首尾的空白字符,然后检查该行是否为空或是否以 'CMNT'
开头。如果都不满足,则对该行进行处理(这里只是简单打印,你可以根据实际需求修改处理逻辑)。
91、编写一个名为 find_dups 的函数,该函数接受一个整数列表作为输入参数,并返回该列表中出现两次或更多次的整数集合。
以下是实现该功能的 Python 代码:
def find_dups(lst):
seen = set()
duplicates = set()
for num in lst:
if num in seen:
duplicates.add(num)
else:
seen.add(num)
return duplicates
92、Python的集合对象有一个名为pop的方法,该方法会移除并返回集合中的一个任意元素。例如,如果集合gerbils中有五只可爱的小动物,那么调用gerbils.pop()五次将逐个返回这些动物,最后使集合为空。请使用此方法编写一个名为mating_pairs的函数,该函数接受两个大小相等的集合males和females作为输入,并返回一个由配对组成的集合;每对必须是一个包含一只雄性和一只雌性的元组。(males和females的元素可以是包含沙鼠名字或沙鼠ID号的字符串 —— 你的函数必须对这两种情况都适用。)
以下是实现 mating_pairs
函数的 Python 代码:
def mating_pairs(males, females):
pairs = set()
while males and females:
male = males.pop()
female = females.pop()
pairs.add((male, female))
return pairs
93、PDB文件格式常用于存储分子信息。一个PDB文件可能包含零个或多个以单词AUTHOR(可以是大写、小写或混合大小写)开头的行,后面跟着空格或制表符,再后面是创建该文件的人的姓名。编写一个函数,以文件名列表作为输入参数,并返回在这些文件中找到的所有作者姓名的集合。
以下是实现该功能的Python代码:
def get_authors(filenames):
authors = set()
for filename in filenames:
try:
with open(filename, 'r') as file:
for line in file:
line = line.strip().lower()
if line.startswith('author'):
author_name = line[6:].strip()
if author_name:
authors.add(author_name)
except FileNotFoundError:
continue
return authors
94、字典中的键保证是唯一的,但值不是。编写一个名为count_values的函数,它接受一个字典作为参数,并返回该字典中不同值的数量。例如,给定输入{‘red’: 1, ‘green’: 1, ‘blue’: 2},它应该返回2。
以下是实现该功能的Python代码:
def count_values(dictionary):
return len(set(dictionary.values()))