python-数据结构补充-list

 

'''
    汉诺塔问题
    规则:1. 每次移动一个盘子 2. 任何时候小盘子都在大盘子下面
    方法:假设有n个盘子,当n=1时,A->C;
                        当n=2时,A->B,A->C,B->C
                        当n=3时,将底层大盘子上的所有盘子 当做一个盘子,执行n=2时的操作,执行递归操作
                                
'''
def func(n,a,b,c):
    if n == 1:
        print(a,"---->",c)
    if n == 2:
        print(a,"---->",b)
        print(a,"---->",c)
        print(b,"---->",c)
        return None
    func(n-1,a,c,b)
    print(a,"---->",c)
    func(n-1,b,a,c)

# test
func(3,"A","B","C")
    
# list 
a = [1,2,3,4,5]
print(a)
del a[2] # 删除元素
print(a)
# 列表相加
b = [1,2,3,4,5]
c = [6,7,8,9]
print(b+c)
# 列表相乘
print(b * 3)
# 判断值是否在列表中
print(3 in b)
# 判断值不在列表中
print(3 not in b)
# 列表遍历
# in 后面的变量要求是可迭代
for k in a:
    print(k)

#while:
length=len(a)
i=0
while(i<length):
    print(a[i])
    i += 1
# 列表遍历
# in 后面的变量要求是可迭代
for k in a:
    print(k)

#while:
length=len(a)
i=0
while(i<length):
    print(a[i])
    i += 1
# 双层列表
a = [["zhangsan",12,"北京"],["lisi",20,"南京"]]
for k,v,w in a:
    print(k,"--",v,"--",w)
# 列表内涵:生成新列表、过滤列表
a = [1,2,3,4]
b = [i*10 for i in a]
#print(b)
# 过滤
a = [x for x in range(1,20)]
b = [i for i in a if i % 2 == 0]
#print(b)
# 列表生成式可以进行嵌套
a = [x for x in range(1,20)]
b = [i for i in a if i % 2 == 0]
print(b)
c = [i*j for i in a for j in b]
print(c)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值