python循环代码 - 把列表中数字两两相加求和

#求列表中的数字两两相加得到的所有和,自己用循环写了如下:#运行得到的结果是>>set()#用print()检查,好像是卡在i+=1之前动不了了#希望能得到大神的帮助#萌... #求列表中的数字两两相加得到的所有和,自己用循环写了如下:#运行得到的结果是>>set()#用print()检查,好像是卡在 i += 1之前动不了了#希望能得到大神的帮助 #萌新爆哭#窗口把缩进取消了,我有老老实实缩进的list = [1,2,3,4,5,6,7,8]count = len(list)sum_num = set()n = 0for num in list:□□□□while True:□□□□□□□□i = 1□□□□□□□□a = list[n] + list[n+i]□□□□□□□□sum_num.add(a)□□□□□□□□if i == count:□□□□□□□□□□□□break□□□□□□□□i += 1□□□□n += 1print(sum_num) 展开
 我来答
就爱纯净水520
2019-04-12 · TA获得超过262个赞
知道小有建树答主
回答量:115
采纳率:68%
帮助的人:19.9万
展开全部
data = [1, 2, 3, 4, 5, 6, 7, 8]

l = len(data)
res = set()

for i in range(l):
    for j in range(i+1, l):
        res.add(data[i] + data[j])

print(res)
# {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}

另外,list是内置类型,自己定义变量名的时候不要使用

化简一下

data = [1, 2, 3, 4, 5, 6, 7, 8]

l = len(data)
res = {data[i] + data[j] for i in range(l) for j in range(i+1, l)}

print(res)
# {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
追问
哇,谢谢大大。我还是有一点好奇我的那一串代码为什么跑不起来(虽然写得很丑)…改了list,好像不是因为列表名的原因…
追答

不是名字的问题。

我看你的代码应该报错呀,是吗

IndexError: list index out of range

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式