fuu = [1,"two","老虎","铃兰","four"]
print(fuu)
#输出:[1,"two","老虎","铃兰","four"]
print(fuu[1])
#输出:two
print(fuu[-1])
#输出:four
print(fuu[0:3])
#输出:[1, 'two', '老虎']
print(fuu[0:3])
#输出:[1, 'two', '老虎']
print(fuu[:3])
#输出:[1, 'two', '老虎']
print(fuu[3:])
#['铃兰', 'four']
print(fuu[:])
#输出:[1, 'two', '老虎', '铃兰', 'four']
for each in fuu:
print(each)
输出:
1
2
3
four
老虎
铃兰
原型:fuu(x,y,z)
(fuu是我自己定义的)
x:起始位置
y:终点位置
z:跨服
原型:fuu(x,y,z)
x:起始位置
y:终点位置
z:跨服
print(fuu[::2])
#[1, '老虎', 'four'] 2表示跨度
print(fuu[0:5:2])
#[1, '老虎', 'four'] 2表示跨度
print(fuu[0:5:1])
#[1, 'two', '老虎', '铃兰', 'four'] 1表示跨度
print(fuu[0:5:-1])
#[]
print(fuu[::-1])
#['four', '铃兰', '老虎', 'two', 1] -1表示跨度,输出倒序
原型:heros.append() #添加单个元素
(heros为我自己定义的列表)
添加单个元素
原型:heros.append()
heros=["钢铁侠","绿巨人"]
heros.append("黑寡妇")
print(heros)
#['钢铁侠', '绿巨人', '黑寡妇']
添加多个元素
原型:heros.extend()
添加多个元素
原型:heros.extend()
heros.extend(["鹰眼","灭霸","雷神"])
print(heros)
#['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']
切片
切片:
s=[1,2,3,4,5]
s[len(s):]=[6]
s
>>>[1, 2, 3, 4, 5, 6]
s[len(s):]=[7,8,9]
s
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9]
原型:s.insert(x,y)
x:插入位置
y:插入元素
原型:s.insert(x,y)
x:插入位置
y:插入元素
s=[1,3,4,5]
s.insert(1,2)
s
>>>[1, 2, 3, 4, 5]
>s.insert(len(s),6) #len(s)代表最后一个元素
s
>>>[1, 2, 3, 4, 5, 6]
原型:heros.remove(k) #k为要删除的元素
原型:heros.remove(k) #k为要删除的元素
heros=['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']
heros.remove('灭霸')
heros
>>>['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '雷神']
heros[0]="黑豹"
heros
>>>['黑豹', '绿巨人', '黑寡妇', '鹰眼', '雷神']
heros[3:]=["武松","林冲","李逵"]
heros
>>>['黑豹', '绿巨人', '黑寡妇', '武松', '林冲', '李逵']
正序:num.sort() #将所有元素从小到大排列
num.sort(reverse=True) #将所有元素从大到小排列
倒序:num.reverse() #将所有元素倒过来
正序:num.sort() #将所有元素从小到大排列
num.sort(reverse=True) #将所有元素从大到小排列
倒序:num.reverse() #将所有元素倒过来
num=[4,4,2,7,9,3,1,4,8,2,7,3,9]
num.sort()
num
>>>[1, 2, 2, 3, 3, 4, 4, 4, 7, 7, 8, 9, 9]
num.reverse()
num
>>>[9, 9, 8, 7, 7, 4, 4, 4, 3, 3, 2, 2, 1]
查找数量:num.count(x) #查找列表中 x 的数量
查找数量:num.count(x) #查找列表中 x 的数量
num
[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num.count(9)
>>>2
查找位置:num.index(x) #查找列表中第一个x出现的位置,初始位置为0
num.index(x,y,z) #在y~z区间内,查找第一个x出现的位置(y>=0)
num.index(7)
4
num.index(9)
0
#引用和拷贝的区别
#被引用的数据发生改变,引用者也会发生改变,但拷贝不会发生改变
#(只对一维列表以下有效)
引用:
#例:
num=[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
numm=num
numm
>>>[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num[0]=1
numm
>>>[1, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
numm[1]=0
num
>>>[1, 0, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
numm
>>>[1, 0, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
浅拷贝:num.copy()
浅拷贝:num.copy()
num=[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num1=num.copy()
num1
>>>[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
切片浅拷贝:num2=num[:]
num2=num[:]
num2
>>>[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num[0]=1
num
>>>[1, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num1
>>>[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
num2
>>>[9, 9, 8, 5, 7, 4, 4, 4, 3, 3, 2, 2, 1]
#当列表为二维以上时,浅拷贝也无法在发挥作用
num=[[1,2],[3,4],[5,6]]
num
>>>[[1, 2], [3, 4], [5, 6]]
import copy
num1=copy.copy(num)
num1
>>>[[1, 2], [3, 4], [5, 6]]
num[0][0]=7
num1
>>>[[7, 2], [3, 4], [5, 6]]
深拷贝:
#此时用深拷贝更为合适
num2=copy.deepcopy(num)
num[0][0]=9
num
>>>[[9, 2], [3, 4], [5, 6]]
num2
>>>[[7, 2], [3, 4], [5, 6]]
#浅拷贝像是复制的快捷方式,而深拷贝直接复制源文件
s=[1,2,3]
t=[4,5,6]
s+t
>>>[1, 2, 3, 4, 5, 6]
t+s
>>>[4, 5, 6, 1, 2, 3]
创建二维列表:
Q=[0]*3 #3表示三行
Q
>>>[0, 0, 0]
for i in range(3):
#这里的3也表示三行,并且由于上边定义三行,所以此处的3只能写<=3的数
Q[i]=[0]*3 #此处的3为自定义,写多少自己定,没有限制
Q
>>>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
Q[i]=[0]*4
Q
>>>[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
mag[x][y] #x代表第几行,y代表第几列
mag=[[1,2,3],[4,5,6],[7,8,9]]
mag
>>>[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in mag:
for each in i:
print(each)
>>>1
>>>2
>>>3
>>>4
>>>5
>>>6
>>>7
>>>8
>>>9
for i in mag:
for each in i:
print(each,end=' ') #end=' '表示不换行
print() #print()表示换行
>>>1 2 3
>>>4 5 6
>>>7 8 9
mag[0][1]
>>>2
mag[1][1]
>>>5
mag[2][1]
>>>8
x=[i for i in range(10)]
x
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x=[i+1 for i in range(10)]
x
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
oho=[1,2,3,4,5]
oho=[i*2 for i in oho]
oho
>>>[2, 4, 6, 8, 10]
关于字符串
#关于字符串
y=[c*2 for c in "FishC"]
y
>>>['FF', 'ii', 'ss', 'hh', 'CC']
Unicode编码
#Unicode编码
code =[ord(c) for c in "FishC"]
code
>>>[70, 105, 115, 104, 67]
从字符串中取值
#从字符串中取值
mog=[[1,2,3],[4,5,6],[7,8,9]]
col=[row[1] for row in mog] #从字符串每一行中取第二列的元素
col
>>>[2, 5, 8]
多个表达式推导
#多个表达式
even=[i for i in range(10) if i%2 ==0]
#先执行for 在执行if 最后执行i
even
>>>[0, 2, 4, 6, 8]
even=[i+1 for i in range(10) if i%2 ==0]
even
>>>[1, 3, 5, 7, 9]
#筛选首字母为F的单词
words=["Ewhun","Fbyuv","Dbubu","Fsoicb","Sbdch"]
fwords=[w for w in words if w[0]=='F']
fwords
>>>['Fbyuv', 'Fsoicb']
#二维列表一维化
mog=[[1,2,3],[4,5,6],[7,8,9]]
mog1=[i for x in mog for i in x]
mog1
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9]
#笛卡尔乘积
[x+y for x in "vghhl" for y in "eiukj"]
>>>['ve', 'vi', 'vu', 'vk', 'vj', 'ge', 'gi', 'gu', 'gk', 'gj', 'he', 'hi', 'hu', 'hk', 'hj', 'he', 'hi', 'hu', 'hk', 'hj', 'le', 'li', 'lu', 'lk', 'lj']