def extendlist(val,lis=[]):

  lis.append(val)

  return lis

list1 = extandlist(10)  

list2 = extendlist(123,[])

list3 = extendlist('a')

print(list1)  #[10,'a']

print(list2)  #[123]

print(list3)  #[10,'a']

注意执行顺序和可变默认变量

#####################################

复数的实部虚部的数字部分都是浮点型

L = range(100)

取第1到3个元素 list(L[0:3])  #先整个转列表会占用内存

取倒数第二个元素L[-2]或L[98]

取后10个元素list(L[-10::])

把L复制给L1用     L1 = list(L[:])

取多个值要加list

#####################################

判断某个key是否在字典最好用in

get命令有几率失效

is和 ==的区别 is比较内存地址

gbk 国标码 不兼容其他语言 只有中文英文

dic.items()命令慎用,会读出所有键和值,占用内存

#####################################

 

删除列表重复元素

new_list = []

for i in list:

  if i not in new_list:

    new_list.append(i)

list = new_list

#用集合set会乱序

 

#####################################

 

name = ['1','2','3','4']

 

ret = map(lambda x: x + '_sb',name)  #ret是迭代器,和可迭代对象不一样(只能取一次)

for i in ret:

  print(i)  

print(list(i))  #['4','_','s','b']   单个字符串转成列表会被拆开(可迭代)

print(lisit(ret))  #[]  一个迭代器只能取值一次

 

#######################################

 

dicinfo = {'name':'Apple','share':90,'price':115}

#计算每支股票的总价

ret = map(lambda dic : {dic['name']:dic['share']*dic['price']},dicinfo)

print(list(ret))

#找出单价大于100的股票

ret = filter(lambda dic:dic['price']>100,dicinfo)

print(list(ret))

 

########################################

 

#对一个20行以上的文件,运行程序,读取内容到内存,以列表存储

#用户输入页码,每页5条,仅输出当页内容

 

with open('file',encoding = 'utf-8') as f:

  lis = f.readlines()

page_num = int(input('请输入页码:'))

page,mod = divmod(len(lis),5)

if mod:

  page +=1

if page_num > page or page_num <= 0:

  print('输入有误')

elif page_num ==page and mod != 0:

  for i in range(mod):

    print(lis[(page_num - 1)*5 + i].strip())

else:

  for i in range(5)

    print(lis[(page_num - 1)*5 + i].strip())