python - 如何删除 Python 列表中的每个第 n 个术语
问题描述
我需要使用 Python 解决问题。我可以在没有代码的情况下解决问题,如果您在互联网上搜索答案是公开的。我无法让我的代码解决这个问题。无论如何,这是一个问题:
史蒂夫从左到右按顺序重复写了数字 1、2、3、4 和 5,形成了一个 10,000 个数字的列表,从 123451234512.... , 6th, 9th, ... 数字从左边开始),然后从结果列表中删除每第四个数字(即剩余的从左边开始的第 4、8、12、... 数字),然后删除每个从那时剩下的第五位数字。2019 年、2020 年、2021 年的三位数字之和是多少?
我已经编写了 python 代码来将所有数字打印到一个列表中。我需要弄清楚如何删除每个第 n 个数字。
list = []
value = 1
for i in range (10000):
list.append (value)
value = value + 1
if value == 6:
value = 1
这是写出前 10,000 位数字的代码。
在以前的课程中,我编写了一个代码来删除每个第 n 个术语并将其打印出来。该代码如下所示:
n = 3
def RemoveThirdNumber(int_list):
pos = n - 1
index = 0
len_list = (len(int_list))
while len_list > 0:
index = (pos + index) % len_list
print(int_list.pop(index))
len_list -= 1
nums = [1, 2, 3, 4]
RemoveThirdNumber(nums)
print(list)
我需要帮助来更改该代码,以便每隔三个术语删除一次它会遍历列表并打印出剩余的数字。
所以这意味着,而不是输出
3
2
4
1
这将是
[1,2,4]
感谢您尝试提供帮助!
解决方案
a = [1,2,3,4,5] * (10000//5)
a = [a[i] for i in range(len(a)) if i%3 != 2]
a = [a[i] for i in range(len(a)) if i%4 != 3]
a = [a[i] for i in range(len(a)) if i%5 != 4]
print(a[2019:2022]) # --> [2, 5, 3]
print(sum(a[2019:2022])) # --> 10
推荐阅读
- php - 完整性约束违规:laravel 6.2 中的 1048
- c# - C# Selenium WebDriver - 如何使用 FindElement.(By.XPath).Text 获取纯文本
- node.js - JsonWebToken 在 1 秒内完成的请求中具有相同的值
- c# - 循环中的 DelegatingHandler 和 HttpClient
- python-3.x - numpy数组:元组索引超出范围
- php - 如何拒绝登录用户访问路由?
- python - ModuleNotFoundError:没有名为“django_popup_view_field”的模块
- azure - 无法在按需付费订阅中访问 Azure Active Directory 自定义角色
- angular - 如何在 Angular 中模拟 HTTP 请求?
- java - 在 Spring Boot 中使用环境变量覆盖 application.yml