python 关于列表?

要求:

img


如何才可以做到像[(1,8),(0,9)]这样输出?
目前编写的代码:

kl = [7, 5, 3, 1, 2, 0, 9, 4, 6, 15]
kn = []
km = []
ko = []
for i in range(len(kl)):
    for j in range(len(kl)):
        if kl[i] + kl[j] == 9:
            km.append(kl[i])
            kn.append(kl[j])
print(km)
print(kn)

直接用一个列表就行

kl = [7, 5, 3, 1, 2, 0, 9, 4, 6, 15]
results= []
for i in range(len(kl)):
    for j in range(len(kl)):
        if kl[i] + kl[j] == 9:
            results.append((kl[i],kl[j]))
print(results)

你观察它的嵌套结构,最外层是列表,然后列表的每一个元素都是一个元组,所以你把答案组成元组再放进一个列表就行了

>>>a=(1,2)
>>>d=[]
>>>d.append(a)
>>>d.append(a)
>>>d
[(1,2),(1,2)]
>>>

-