首页 > 解决方案 > 用 X 替换列表中 3 的倍数

问题描述

问:使用 for 循环和范围函数将列表中 3 的倍数替换为 X,其中 N 是标准输入提供的整数。

我糟糕的尝试:

#!/usr/bin/env python3

strings = ["1", "2", "3", "4", "5", "6", "7", "8"]

new_strings = []

for string in strings:
    new_string = string.replace("3", "X")

    new_strings.append(new_string)

print(new_strings)

我的输出:

['1', '2', 'X', '4', '5', '6', '7', '8']

输出应该是:

['1', '2', 'X', '4', '5', 'X', '7', '8']

基本上,任何 3 的倍数都应该替换为 X。我该怎么做?

标签: python

解决方案


如果列表元素可以转换为 int,那么您可以将列表推导用作:

x = ["1", "2", "3", "4", "5", "6", "7", "8"]
x = [elt if int(elt)%3 != 0 else "X" for elt in x]
print(x)

输出:

['1', '2', 'X', '4', '5', 'X', '7', '8']

推荐阅读