列表

列表与Java数组类似但是能容纳不同类型 而Java需要重新命名元素

帅=[1,2,3,"213"]

len提取列表长度

s=[1,2,3,'1dhsui']
print(s)
for e in s:输出没有[]的数组
    print(e)
print(s[2])
陈淑钰大帅逼=len(s)#将列表长度赋值给陈淑钰大帅逼
print(s[陈淑钰大帅逼-1])#列表长途-1为列表倒数第一个值

列表切片

s=[1,2,3,'1dhsui']
print(s)
print(s[:3])#输出列表开始到第三个值
print(s[5:])#输出列表第五个到结束
print(s[2:8:2])#输出列表第二个到第八个值跨度为2
print(s[::-1])#倒放全部列表
print(s[::-2])#倒放列表跨度为2
print(s[::2])#输出列表跨度为2

添加列表

袜子=['黑丝','白丝']
袜子.append('渔网袜')#append添加列表元素但是只能添加一个
print(袜子)
袜子.extend(['长筒袜','连体袜'])#extend能添加多个 extend()方法的参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面。
                            #扩展()方法的参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面。

print(袜子)
袜子[len(袜子):]=['我是','傻逼']#以切片的形式吧我是傻逼添加到袜子列表中
print(袜子)
s=[1,3,5,6]
s.insert(1,2)#将2这个数插入下标1的位置上

insert

s.insert(1,2)#将2这个数插入下标1的位置上
print(s)

删除列表 remove pop

袜子=['黑丝','白丝','大裤衩']
袜子.remove('大裤衩')#1.如果列表中存在多个匹配的元素,那么它只会删除第一个。
#那么它只会删除第一个
袜子.pop(2)#删除下标为2的值

清空列表

袜子=['黑丝','白丝','大裤衩']
袜子.clear()
print(袜子)

列表替换

袜子=['黑丝','白丝','大裤衩']
袜子[2]='雷斯大裤衩'
帅逼=['陈淑钰','吴彦祖','彭于晏']
帅逼[1:]=['王宝强','武大郎']#将下标1以及结束的元素替换成王宝强 武大郎
print(帅逼)

数组顺序输出

数字=[4,21,4,14,1,24,1,24,34,465,34,7,4]
数字.sort()#小到大排序
print(数字)
数字.reverse()#第一个与倒一第二个与倒二互换一次类推
print(数字)
数字.sort(reverse=True)#从大到小排序

查找列表元素 元素索引值 替换元素新方式

帅逼01=[4,21,4,14,1,24,1,24,34,465,34,7,4]
print(帅逼01.count(4))#查找列表中4有几个
帅逼01.index(4,1,3)#查找列表下标1到3中第一个4的索引值
print(帅逼01.index(7))#查找列表中7的索引值
print(帅逼01.index(7))="我"
ok1=帅逼01[帅逼01.index(7)]='吴彦祖'
print(帅逼01)

列表的拼接

s=[2,3,4]
d=[5,6,7]
print(s+d)

列表的乘法(重复加载)

S=[1,2,3]
print(s*3)#重复加载三次

二维列表 数组

二维=[[1,2,3],[4,5,6],[7,8,9]]
print(二维)
二维数字=[[1,2,3],
      [4,5,6],
      [7.8.9]]
for c in 二维:
    print(s)
    for r in c
        print(r, end='   ')#end横向输出数组(无end是竖着的)

创建二维数组新方式

我=[1]*4
print(我)
for o in range(4):
    我[o]=[0]*2#利用迭代重复运行4次
print(我)

拷贝数组列表

浅拷贝copy

浅拷贝只能拷贝外层对象 如果拷贝的二维列表 则拷贝的只是引用

x=[2,3,4]
y=x#并不是拷贝而是引用
print(y+x)
帅逼=['陈淑钰','吴彦祖','彭于晏']
大帅逼=帅逼.copy()
小帅逼=帅逼[:]#切片方式拷贝我最喜欢的
print(小帅逼)
s=[[1,2,3],[4,5,6],[7,8,9]]
import copy #拷贝模块copy 使用import启动
o=copy.copy(s)
print(o)

深拷贝deepcopy

s=[[1,2,3],[4,5,6],[7,8,9]]
import copy#拷贝模块copy 使用import启动
o=copy.deepcopy(s)#深拷贝deepcopy
print(o)

列表推导式

s=[1,2,3]
x= [i*2 for i in s]#输出s*2的数组 2 4 6

嵌套

abb=[x+y for x in 'abc'
     for y in 'def']
print(abb)
asdd=[[1,2,3],[4,5,6],[7,8,9]]
fla=[col for row in asdd#将asdd赋值给row
     for col in  row]#然后将row赋值给col 然后col赋值给fla
print(fla) 
for row
ake=[]
for row in asdd:
    for col in row:
        ake.append(col)
print(ake)

列表if

print(_)
ak=[[x,y]for x in range(10) if x%2==0#条件能被2整除的
    for y in range(10) if x%3==0]#条件能被3整除的
print(ak)
aka=[]
for x in range(10):
    if x%2==0:
        aka.append(x)
        print(aka)
        for y in range(10):
            if y % 3 == 0:
                aka.append([x,y])
                print(aka)

内置函数

ord内置函数 将字符转换为数字

wd=[ord(c) for c in '帅逼陈淑钰']
print(wd)

矩阵

帅不=[[1,2,3],[4,5,6],[7,8,9]]
WD=[帅[2]  for 帅 in 帅不] #将列表 赋值给 帅为每一行 然后提取每一行行的二个元素
print(WD)
wdd=[帅不[I][I] for I in range(len(帅不))]#输出列表第一个元素依次叠加	
print(wdd)
wdd=[帅不[I][-I-1] for I in range(3)]#输出列表[1][3] [2][2] [3][1]
print(wdd)

is 是否指向同一个对象

A='大帅逼'
B='大帅逼'
A is b #结果为ture
a=[1,1,2]
b=[1,1,2]
a is b #fishc
列表内存地址不一样 字待串是不可变的所以字符串内存地址一样

元组

元组与数组的区别结束一个是【】一个是()或者不要任何括号

帅逼=1,3,4,5
print(帅逼)
帅逼=(1,3,4,5)
print(帅逼)

元组也是有下标的

帅逼=1,3,4,5
print(帅逼[0])

元组是不能修改体内元素的

帅逼=1,3,4,5
帅逼[0]=82#这是不可取的

元组切片

帅逼=1,3,4,5
print(帅逼)
print(帅逼[0])
op=帅逼[2:]
print(op)
ok=帅逼[::-1]
print(ok)

元组查询元素

帅比=(3,3,2,5,6)
s=帅比.count(3)#查找3在帅比里有几个
print(s)

元组查找下标索引

大帅逼=('吴彦祖','陈淑钰','彭于晏')
print(大帅逼.index('陈淑钰'))

拼接与重复

a=(1,2,3)
b=(4,5,6)
print(a+b)#拼接
print((a+b)*2)#重复输出

嵌套元组

a=(1,2,3)
b=(4,5,6)
c=a,b
print(c)

迭代元组

a=(1,2,3)
b=(4,5,6)
for ok in a+b:
    print(ok)

查看类型

oki=(523,)
print(oki)
type(oki)

一元素元组

oki=(523,)
print(oki)

打包与解包

生成一个元组就叫做元组的打包

打包=(123,'帅逼',5.21)
print(打包)

将打包的元素一次性赋值给n个变量名的情况下称作为元组的解包

打包=(123,'帅逼',5.21)
x,Y,Z=打包
print(x)
print(Y)
print(Z)
A,B='帅逼'
print(A)
print(B)

注意!赋值的变量名要和列表里面的元素数量要一致否则会报错

除非在某给变量名前加个*

山东='大帅逼陈淑钰'
Q,W,E,R,*T=山东
print(Q)
print(W)
print(E)
print(R)
print(T)