加强训练基础

练习题目:

1.生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内

numbers = [(x,y,z) for x in range(1,100,3) for y in range(x+1,x+2,2) for z in range(x+2,x+3,2)]
print(numbers)

这题比较简单,注意好变量的间隔就Ok了,当然,一开始我没有处理变量的时候,产生了100w个数据。

2.请写出一段 Python 代码实现分组一个 list 里面的元素,比如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]

list_100 = [x for x in range(1,101)]
print(list_100)

list_100_temp = []
for i in list_100:
if(i%3==0):
list_100_temp.append([list_100[i-3],list_100[i-2],list_100[i-1]])
elif(i==len(list_100)):
if i%3 == 1:
list_100_temp.append((list_100[i-1]))
else:
list_100_temp.append([list_100[i - 2],list_100[i - 1]])


list_100 = list_100_temp
print(list_100)

 

def extendlist(val,list=[]):
    list.append(val)
    return list
list1 = extendlist(10)
list2 = extendlist(123,[1,2,3])
list3 = extendlist('a')
list4 = extendlist('a',[2,3])
print(list1)
print(list2)
print(list3)
print(list4)

Amazing,我完全没想到list1和list3会输出同一个结果,这说明了什么?它们指向的内存地址是一致的。我觉得是如果传参的时候,这种引用类型的,如果缺省传参的话,会导致同一个引用。

告一小段落了。。Python基础部分差不多解决了。

posted on 2017-10-10 19:31  柯腾  阅读(237)  评论(0编辑  收藏  举报