python笔记四:列表list和元组tuple

一.列表list

1.正下标负下标

2.截取列表

L[a:b:c]  从a开始,到b结束(包含a不包含b),步长为c(c默认为1)

l=[1,3,5,6,2,8,9]
print(l[1:5])
print(l[:5])
print(l[1:6:2])
print(l[-7:-2:2])
print(l[-2:-7:-2])

   

3.双层列表

a=[['one',1,'hh'],['two',2,'kk'],['three',3,'hk']]
for k,v,w in a:  #变量数量必须和列表值的数量匹配
    print(k,'--',v,'--',w)

   

4.传值和传址

python的传值和传址是根据传入参数的类型来决定的

传值的参数类型:数字,字符串,元组 (为不可变对象)

传址的参数类型:列表,字典 (为可变对象)

def fun1(n):
    n[1]=100
    print(n)
def fun2(n):
    n=100
    print(n)
a=[1,2,3,4,5,6]
b=1

print(a)
fun1(a) #传址,改变了这个地址内的值
print(a) 
print(b)
fun2(b) #传值,b的值不会被改变
print(b)

   

5.关于列表的函数

插入:append、insert,只执行,不返回

l=[0,1,2,3,4,5,6]
print(l.append(20))
l.append(20)#末尾添加值
print(l)
l.insert(2,100) #指定位置添加值
print(l)

   

删除:del、pop、remove、clear

l=[0,1,2,3,4,5,6]
del(l[2])  #删除指定位置元素
print(l)
last_ele=l.pop()  #删除最后一个元素,并将其赋给last_ele
print(last_ele)
print(l)
l.remove(3)    #删除元素值为3的元素
print(l)
l.clear()   #清空列表
print(l)

   

反转:reverse

l=[0,1,2,3,4,5,6]
l.reverse()
print(l)

  

拼接:extend

l=[0,1,2,3]
k=[4,5,6]
l.extend(k) #对同一列表操作,不改变id值
print(l)

   

查找个数:count,查找指定元素个数

l=[1,2,2,2,3,4,5,6]
print(l.count(2))

    

拷贝:copy(=赋值是传址,copy是传值)

l=[0,1,2,3,4,5,6]
k=l.copy()
print(k)

   

浅拷贝和深拷贝

import copy

l=[0,1,2,3,[4,5,6]]
k=l.copy()#浅拷贝,只拷贝第一层
k[4][1]=100
print(l)

p=[0,1,2,3,[4,5,6]]
h=copy.deepcopy(p) #深拷贝,拷贝所有层
h[4][1]=100
print(p)

   

二.元组

1.元组可以看做一个不可更改的list,list所有特性,除了可修改外元组都有

2.创建、索引(索引用[ ])

t=(0,1,2,3,4,5,6)
t1=(1,) #单个元素时一般在后边加逗号,防止看做int类型
print(t[2])

3.特点:有序、可以访问、不能修改、传值操作

4.元组相加

t=(0,1,2,3)
print(id(t))
p=(4,5,6)
t=t+p #传值操作,相当于t=(0,1,2,3,4,5,6),不算修改t中的元素,因为id变了
print(id(t))
print(t)

   

5.元组相乘

t=(1,2,3)
print(t*3)

   

6.元组的函数

len、max、min

t=(5,3,2,6,1,8)
print(len(t))
print(max(t))
print(min(t))

   

列表转元组

l=[0,1,2,3,4,5,6]
t=tuple(l)
print(t)

   

index:求指定元素的索引位置,如果有多个,返回第一个的位置

t=(3,8,6,2,1,2)
print(t.index(2))

   

7.变量交换

a=1
b=2
a,b=b,a
print(a)
print(b)

   

猜你喜欢

转载自blog.csdn.net/qq_41518266/article/details/86009648