暑期学习记录04

python

列表和元组

a = [1, 2, 3]
b = a
b[1] = 4
print a[1]

结果为 :4
b指向a列表内容

def f(l):
    l[1] = [5]
    return l
a = [1, 2, 3]
f(a)
print a[1]

结果为:5
a为f 参数,修改则修改列表内容

def f(l):
    l = [4, 5, 6]
    return l

a = [1, 2, 3]
f(a)
print a[1]



小测验

    def func(lst):
        for i in range(len(lst) - 1):
            for j in range(i + 1, len(lst)):
                if lst[i] < lst[j] :
                    lst.insert(i, lst.pop(j))
                else:
                    pass
        else:
            return lst
        return -1

    lst1 = [6, 2, 4, 1, 5, 9]
    lst2 = func(lst1)
    lst2[3:-2] = []
    print lst1

结果为:[9, 6, 5, 2, 1]

有 3 个回文数字,第一个是两位数,第二个是三位数。将这两个数字相加得到第三个数字,这是个四位数。请问第三个数字式多少?

import random
#判断回文数
def is_huiwen(x):
    if x>=1 and x<10:
        return True
    else:
        is_f=1
        x_t=x
        num=0
        if x_t%10==0:
            is_f=0
        if is_f==0:
            return False
        while x_t!=0:
            num=num*10+x_t%10
            x_t=x_t/10

        if num==x:
            return True
        else:
            return False


#生成(10,100)回文数的列表
list1=[i for i in range(10,100)]
j=0
while True:
    if j>=len(list1):
        break
    if not(is_huiwen(list1[j])):
        del list1[j]
    else:
        j+=1

#生成(100,1000)回文数的列表

list2=[i for i in range(100,1000)]
j=0
while True:
    if j>=len(list2):
        break
    if not(is_huiwen(list2[j])):
        del list2[j]
    else:
        j+=1

#生成(1000,10000)回文数的列表

list3=[i for i in range(1000,10000)]
j=0
while True:
    if j>=len(list3):
        break
    if not(is_huiwen(list3[j])):
        del list3[j]
    else:
        j+=1


#得到三个数的结果
k=1
while k:
    o = random.sample(list1,1)
    p = random.sample(list2,1)
    q = random.sample(list3,1)

    qian=o
    zhong=p
    hou=q
    math_qian=eval(str(qian[0]))
    math_zhong=eval(str(zhong[0]))
    math_hou=eval(str(hou[0]))

    k=math_qian+math_zhong-math_hou

print qian,zhong,hou
[此段代码网上查找的]

列表解析或推导(List  Comprehension) 
一种由原列表创建新列表的简洁方法 
[表达式  for  变量  in  列表  if  条件] 
如生成值为  {x²  :  x  ∈  {1  …  9}}  的列表 

lst=[]
for x in range(1,10):
      lst.append(x**2)
print lst

列表解析
lst=[x**2 for x in range(1,10)]

lambda

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

def f(x):
   return x**2
print f(2)
4
g=lambda x:x**2
print g(2)
4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值