python - 返回给定整数列表中相差为 2 的所有整数对

标签 python arrays algorithm

如标题所述,我需要找到列表中整数的差值 2,并且必须返回一个包含元组的列表。

initial_list = [1, 2, 3, 4]
expected_output = [(1, 3), (2, 4)]

我写了这段代码:

arr = [1, 2, 3, 4]
n = 2
arr1 = []
for i in range(len(arr)):
    x = i + n
    if x in arr:
        arr1.append(x)
print(arr1)

但是没有用... 你能帮我吗? 谢谢

最佳答案

如果将初始列表设为一个集合,则可以有效地测试 n+2 是否在每个 n 的集合中,如果是,则包含元组:

initial_list = [1, 2, 3, 4]
s = set(initial_list)

[(n, n+2) for n in initial_list if n + 2 in s ]
# [(1, 3), (2, 4)]

关于python - 返回给定整数列表中相差为 2 的所有整数对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61062583/

相关文章:

python - 覆盖 Django 中的模板

python - 如何为 Python 3.2 Windows 64 位安装 Feedparser 5.1。

python - 是否可以向 Django 表单添加单行?

python - 当有 2 个类时,sklearn LabelBinarizer 返回向量

algorithm - 在 CLRS 中的 DFS 和 BFS 实现中使用灰色的目的是什么?

algorithm - 为什么这里会出现这种数学模式?

algorithm - 找到向量中的最大距离

java - Java对二维数组求和的方法

c++ - 重载运算符在 C++ 中不起作用

php - 如何根据另一个数组对数组进行重新排序?