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())
 
                    
                     
                    
                 
                    
                 
         
