能否通过单次遍历Python字典推导式同时计算元音与辅音值的和?
单次遍历同时计算元音和辅音对应值的总和
当然可以!完全不用对字典做两次遍历,一次循环就能同时算出元音和辅音对应值的总和,效率更高,代码也更简洁。
先把你给出的变量定义好,然后直接看实现逻辑:
# 定义给定的元音、辅音列表和键值对字典 vowels = ['a','e','i','o','u'] consonants = ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'] letter_number_pairs = {'a': 1,'b': 8,'c': 3,'f': 3,'h': 8,'i': 2,'l': 4,'p': 2,'q': 1,'s': 5,'u': 9,'w': 0,'y': 5,'z': 2} # 初始化两个总和变量 vowel_sum = 0 consonant_sum = 0 # 单次遍历字典的键值对 for letter, value in letter_number_pairs.items(): if letter in vowels: vowel_sum += value elif letter in consonants: consonant_sum += value # 输出结果 print(f"元音对应值总和: {vowel_sum}") print(f"辅音对应值总和: {consonant_sum}")
逻辑解释:
- 先初始化两个总和变量
vowel_sum和consonant_sum为0,用来分别累加对应的值。 - 通过
items()方法遍历字典的每一组键值对,一次循环就能拿到每个字母和它对应的值。 - 每次循环判断当前字母属于元音还是辅音,把对应的值加到对应的总和变量里。
- 遍历结束后,两个总和就都计算完成了。
运行这段代码后,你会得到:
元音对应值总和: 12
辅音对应值总和: 41
这样就通过一次遍历完成了两个总和的计算,避免了重复遍历字典的开销,尤其是当字典数据量很大的时候,这种方式优势更明显。
内容的提问来源于stack exchange,提问作者John Forbes
相关产品推荐
相关产品推荐

