序列list笔记


# coding: utf-8

# In[31]:


#汉诺塔
def hannuota(n, i,a, b, c) :
    i += 1
    print('i:%s, n:%s' %(str(i), n))
    #只有一个盘子的时候
    if n == 1 :
        print(a + '->' + c)
        return None;
    #有两个盘子的时候 '''
    '''
    if n ==2 :
        #第一步从a移动到b
        #第二步从a移动到c
        #第三部从b移动c
        print(a + '2->' + b)
        print(a + '2->' + c)
        print(b + '2->' + c)    
        return None;
    '''
    #盘子大于2个的时候
    #第一步把n-1个盘子从a借助于c移动到b
    hannuota(n-1,i, a, c, b)
    #第二步把a上的一个盘子移动到c
    print('i1:%s, n1:%s' %(str(i), n))
    print(a + '1->' + c)
    #第三步把b上的n-1个盘子借助a移动到c     
    hannuota(n-1, i, b, a, c)a
n = 3
i = 0
hannuota(n, i, 'A', 'B', 'C')


# In[19]:


n = 2;
hannuota(n, 'A', 'B', 'C')


# In[35]:


#列表
a = [1,2,3,4]
print (a)


# In[37]:


#列表相加
a = [1,2,3,4]
b = ['a', 'b','c','d']
print (a +b )


# In[38]:


#列表的乘法
a = [1,2,3,4,5]
print(a * 5)


# In[39]:


#判断一个元素是否在列表里面
a = [1,2,3,4,5]
b = 2
print(b in a)


# In[40]:


#判断一个元素不在列表里面
a = [1,2,3,4,5]
b = 6
print(b not in a)


# # 列表的遍历
# for
# while

# In[73]:


b = ['i','l','o','v','e']
for i in b :
    print('i' + i)


# In[75]:


#使用range
b = range(0,5)
for i in b :
    print(i)


# # 用while循环访问list 一般不推荐

# In[77]:


a = [1,2,3,4,5]
a_len = len(a)
index = 0
while index < a_len :
    print(a[index])
    index += 1


# In[83]:


#双层列表
a = [['a',1,'one'] , ['b',2,'two'], ['c',3,'three']]
#i,j 要与嵌套的列表里面的个数对应
for i,j,k in a :
    print('i:%s,j:%s,k%s' %(i,j,k))


# In[100]:


a = [i for i in range(0,4)]
print(a)
b = [i for i in range(100,1000) if i%400 == 0]
print(b)
c = [m + n for m in a for n in b if (m+n) < 800]
print(c)


# # 关于列表的函数
# #len() 求列表的长度
# #max()求最大值
# #min()求最小值
# 

# In[102]:


a = [i for i in range(0,100)]
print(len(a))
print(min(a))
print(max(a))


# In[109]:


#在列表后面追加元素
a = ['a', 'b', 'c','d']
print(a)
a.append('e')
print(a)


# In[111]:


#用insert指定位置插入元素
a = ['a','b','c','d','e']
print(a)
a.insert(3,4)
print(a)


# In[125]:


#s删除
# del 删除列表
#pop把最后一个元素从列表里面拿出来

print(a)
pop_a = a.pop();
print(pop_a)
del a
print(a)


# In[133]:


#remove:在列表中删除指定的元素

a = ['a,','b','c,','d','e','f']
print(a)
print(id(a))
a.remove('e')
print(id(a))
print(a)


# In[136]:


#clear 删除列表里的值,但是占用的地址还在
print(a)
print(id(a))
a.clear()
print(a)
print(id(a))


# In[144]:


#reverse 翻转地址内容,在原来的地址里面翻转
a = [1,2,3,4,5,6,7]
print(a)
print(id(a))
a.reverse()
print(a)
b = [8,9,10]
print(id(b))
a.extend(b)
print(a)
print(id(a))


# In[146]:


#count;返回列表的长度
print(a)
a_len = len(a)
print(a_len)


# In[163]:


#copy 拷贝 浅拷贝 
# b=a赋值直接把地址指向b,a和b共用同一个地址,修改其中一个另一个也变化
# b =a 
a =[1,2,3,4,5,6,7]
print(a)
b = a
b.append(8)
print(a)
print(b)
print('*' *20)
#copy a 只是赋值,没有传地址
a = [1,2,3,4,5]
print(a)
print(id(a))
b = a.copy()
print(b)
print(id(b))
#copy 只能拷贝一层,里面另外一层的地址还是在a
print('*' *20)
a = [1,2,3,4,[1,2,3,4]]
b = a.copy()
print(id(a))
print(id(b))
print(id(a[4]))
print(id(b[4]))
if id(b[4])== id(a[4]) :
    print('true')


# # tuple 元组
# .是序列表有序
# .元组数据可以访问不能修改
# .元组数据可以是任意类型
# .总之list所有特性,除了不能修改之外,元组都有
# .也就意味着,list具有的一些操作,比如索引,分片,序列相加,相乘,成语这个操作等,一模一样

# In[171]:


a = 1,;
print(type(a))
a = (1,)
print(type(a))
#使用其他结构创建数组
a = 1,2,3,4,5
b = tuple(a)
print(type(b))
print('*' * 8)
a = ['a','b','c','d','e']
b = tuple(a)
print(type(b))


# In[172]:


print(a)


# In[173]:


a.append('f')
print(a)


# In[174]:


len(a)
print(len(a))


# In[8]:


#list 切片功能
a = ['a', 'b','c','d','e','f','g']
#切下标0到4的数组不包括5
b = a[0:5]
print(b)
#2表示步长间隔2个数值进行切片
c = a[0:6:2]
print(c)
#歩长可以超过列表的长度
c = a[0:6:100]
print(c)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值