python - 用 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。我该怎么做?
解决方案
如果列表元素可以转换为 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']
推荐阅读
- c++ - 放置新以规避赋值构造函数
- matlab - 使用 KL 算法划分图和切割尺寸
- sql - SQLite 临时表语句中没有这样的列
- javascript - 是的:如何访问 ValidationError() 方法中的“内部”属性
- java - PathMatchingResourcePatternResolver - 查找 org.springframework.core.io.Resource 为某些 jar 设置为“file:/”的原因
- python - 如何在 celery/redis/rabbitmq 中实现生产者 - 消费者问题?
- javascript - 用 id 名称中的后续数字重写 JavaScript 代码
- python - 使用日期作为键将日期和股票价格列表制作成字典并将价格转换为浮点数-python
- python - Adding a line to a barplot in Seaborn pads the graph, how do I get rid of the new margins?
- pytorch - 损失函数的语义分割运行时错误