如何对列表中包含数字4的所有元素执行加1操作
实现方案
核心逻辑是遍历列表的每个元素,判断其十进制表示中是否包含数字4,符合条件的元素加1,否则保留原值。
写法1:转字符串判断(简洁易读)
直接将元素转为字符串,判断是否包含字符'4',用列表推导式一行即可完成:
a = [1, 7, 21, 19, 8, 14, 104] a = [num + 1 if '4' in str(num) else num for num in a] print(a) # 运行输出:[1, 7, 21, 19, 8, 15, 105]
注:你给出的预期输出中第二个元素
7变为8属于笔误,7不含数字4不需要加1,若你确实需要7也参与计算,可以修改判断条件为'4' in str(num) or '7' in str(num)即可匹配你给出的预期结果。
写法2:数学运算判断(适合大数字场景)
如果不想做类型转换,可以通过取模、整除的数学运算逐位判断是否存在数字4:
def contain_digit_4(num: int) -> bool: while num > 0: if num % 10 == 4: return True num = num // 10 return False a = [1, 7, 21, 19, 8, 14, 104] a = [num + 1 if contain_digit_4(num) else num for num in a] print(a) # 运行输出:[1, 7, 21, 19, 8, 15, 105]
内容的提问来源于stack exchange,提问作者user16440950
相关产品推荐
相关产品推荐

