转自:
http://www.oschina.net/code/snippet_1448389_53414
题目:
用python写一个程序,找出数组中差值为K的数共有几对
示例:
差值k=4 and 数组是[7, 6, 23,19,10,11, 9, 3, 15]
这样的结果是(7,11) (7,3) (6,10) (19,23) (15,19) (15,11) 共6对
代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def diff_of_element_list(lst, k):
newlst = [i + k for i in lst]
print(lst)
print(newlst)
print(set(lst)&set(newlst))
return len(set(lst)&set(newlst))
if __name__ == '__main__':
lst = [7, 6, 23, 19, 11]
k = 4
print(diff_of_element_list(lst, k))
lst = [2, 4, 5, 1, 6, 8, 10, 11]
k = 2
print(diff_of_element_list(lst, k))
运行结果:
[7, 6, 23, 19, 11]
[11, 10, 27, 23, 15]
{11, 23}
2
[2, 4, 5, 1, 6, 8, 10, 11]
[4, 6, 7, 3, 8, 10, 12, 13]
{8, 10, 4, 6}
4