Rar*_*res 1 python arrays algorithm
就像标题所说的那样,我需要找到列表中整数的 2 之差,并且必须返回一个包含元组的列表。
initial_list = [1, 2, 3, 4]
expected_output = [(1, 3), (2, 4)]
Run Code Online (Sandbox Code Playgroud)
我写了这段代码:
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)
Run Code Online (Sandbox Code Playgroud)
但不起作用...你能帮帮我吗?谢谢
如果将初始列表设为集合,则可以有效地测试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)]
Run Code Online (Sandbox Code Playgroud)