R = [(1, 2,3,4), (1, 3), (1, 4), (1,4, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 6)]从上面的集合中,我只想从元组的每个元素中减去索引或任何值。
而预期的答案是
#R = [(1-0, 2-0,3-0,4-0), (1-1, 3-1), (1-2, 4-2) and so on以下是我的代码,但我想以最简单的方式使用它,请帮助
final_matches = {k: v for k,v in matches.items() if len(v) >= 4}
for k, v in matches.items():
if len(v) >= 3:
print(k,':',v,'/',len(v))
#for j in range(0,len(v)):
#print(v[j])发布于 2017-06-15 00:54:44
您可以尝试这样做:
R = [(1, 2,3,4), (1, 3), (1, 4), (1,4, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 6)]
new_list = [tuple(c-i for c in a) for i, a in enumerate(R)]仅获取长度为3的元组:
new_list = [i for i in new_list if len(i) >= 3]最终输出:
[(1, 2, 3, 4), (-2, 1, 2)]发布于 2017-06-15 09:06:08
当你遍历字典时,v[:] = [x - k for x in v]可以做到这一点。
https://stackoverflow.com/questions/44550486
复制相似问题