目录
(3)extend:迭代追加,在列表的最后面迭代着追加一组数据
(1) pop:通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
(2) remove:通过元素删除列表中该元素,如果删除的元素不在列表中会报错
1.列表
- 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。
- 列表是有序的,有索引值,可切片,方便取值。
- 以"[]"括起来,每个元素以逗号隔开,可以存放各种数据类型
1.1列表的创建(三种方式)
(1)常用
l1 = [1, 2, '熊猫']
(2)不常用
l1 = list() #空列表
#l1 = list('iterable') #可迭代对象
l1 = list('123')
print(l1) #['1', '2', '3']
(3)列表推导式
l1 = [i for i in range(1,5)]
1.2列表的索引切片
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
索引
#索引
l1 = li[0]
print(l1) #alex
l2 = li[-1]
print(l2) #taibai
切片
#切片
l3 = li[0:3]
print(l3) #['alex', [1, 2, 3], 'wusir']
l4 = li[:-1]
print(l4) #['alex', [1, 2, 3], 'wusir', 'egon', '女神']
l5 = li[::2]
print(l5) #['alex', 'wusir', '女神']
l6 = li[::-1]
print(l6) #['taibai', '女神', 'egon', 'wusir', [1, 2, 3], 'alex']
1.3增
li = ['taibai','alex','wusir','egon','女神']
(1)append:追加,给列表的最后面追加一个元素
li.append('日天') #['taibai','alex','wusir','egon','女神', '日天']
print(li)
while 1:
username = input('>>>')
if username.strip().upper() == 'Q':
break
else:
li.append(username)
print(li)
(2)insert:在列表的任意位置插入元素
li.insert(4,'春哥')
print(li) #['taibai','alex','wusir','egon','春哥','女神']
(3)extend:迭代追加,在列表的最后面迭代着追加一组数据
li.extend('二哥')
print(li) #['taibai','alex','wusir','egon','女神', '二', '哥']
1.4删
li = ['taibai','alex','wusir','egon','女神']
(1) pop:通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素
name = li.pop(1)
print(name,li) #alex ['taibai', 'wusir', 'egon', '女神']
name = li.pop() #默认删除最后一个
print(name,li) #女神 ['taibai', 'alex', 'wusir', 'egon']
(2) remove:通过元素删除列表中该元素,如果删除的元素不在列表中会报错
li.remove('taibai')
print(li) #['alex', 'wusir', 'egon']
(3) clear:清空列表
li.clear()
print(li) #[]
(4) del:
del li #删除列表
print(li) #打印li会报错,内存中已经没有li这个变量
#按照索引删除该元素
del li[1]
print(li) #['taibai', 'wusir', 'egon', '女神']
#切片删除该元素
del li[1:]
print(li) #['taibai']
#切片(步长)删除该元素
del li[::2]
print(li) #['alex', 'egon']
1.5改
li = ['taibai','alex','wusir','egon','女神']
#按照索引改值
li[0] = '男兽'
print(li) #['男兽', 'alex', 'wusir', 'egon', '女神']
#按照切片改值(迭代着增加)
li[0:3] = '松鼠asdfghjkl'
print(li) #['松', '鼠', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'egon', '女神']
li[0:3] = [1,2,3,'春哥','咸鱼哥']
print(li) #[1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']
#按照切片(步长)改值(必须一一对应)
#不连续切片替换,替换的值的长度必须和切片的值的长度一致,如果不一致,会报ValueError错误
#li[::2]可以取到列表['taibai','wusir','女神'],总共取到三个值,替换的时候也必须替换三个值
li[::2] = '大熊猫'
print(li) #['大', 'alex', '熊', 'egon', '猫']
li[::2] = [1,2,3]
print(li) #[1, 'alex', 2, 'egon', 3]
1.6查
li = ['taibai','alex','wusir','egon','女神']
#for循环
for i in li:
print(i)
#索引
li[0]
1.7公共方法
li = ['taibai','alex','wusir','egon','女神']
(1)len:计算列表的长度
l = len(li)
print(l) #5
(2)count:查找元素在列表中出现的次数
num = li.count('taibai')
print(num) #1
(3)index:找元素的索引,找不到报错
i = li.index('wusir')
print(i) #2
(4)排序
ls = [1,5,4,7,6,2,3]
#正向排序
ls.sort()
print(ls) #[1, 2, 3, 4, 5, 6, 7]
#反向排序
ls.sort(reverse=True)
print(ls) #[7, 6, 5, 4, 3, 2, 1]
(5)反转
#反转
ls = [1,5,4,7,6,2,3]
ls.reverse()
print(ls)
1.8 列表的嵌套
li = ['taibai','武藤兰','苑昊',['alex','egon',89],23]
print(li[1][1]) #藤
name = li[0].capitalize()
li[0] = name
print(li) #['Taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
li[2] = li[2].replace('昊','ritian')
print(li[2].replace('昊','ritian')) #苑日天
print(li) #['Taibai', '武藤兰', '苑日天', ['alex', 'egon', 89], 23]
li[3][0] = li[3][0].upper()
print(li) #['Taibai', '武藤兰', '苑日天', ['ALEX', 'egon', 89], 23]
2.元祖tuple
- 元组:不可变的列表,又被称为只读列表,用"()"括起来,里面可以放任何数据类型的数据
- 可查询、可循环、可切片
2.1元祖的索引与切片
索引
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
print(tu[4]) #[2, 3, 4, 'taibai']
print(tu[4][1]) #3
print(tu[-1]) #alex
print(tu[-2][2]) #4
切片
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
print(tu[1:3]) #(2, 3)
print(tu[-4:-1]) #(3, 'alex', [2, 3, 4, 'taibai'])
print(tu[::]) #(1, 2, 3, 'alex', [2, 3, 4, 'taibai'], 'egon')
print(tu[-1:-5:-1]) #('egon', [2, 3, 4, 'taibai'], 'alex', 3)
print(tu[5:1:-1]) #('egon', [2, 3, 4, 'taibai'], 'alex', 3)
print(tu[1:5:1]) #(2, 3, 'alex', [2, 3, 4, 'taibai'])
print(tu[-5:-1:1]) #(2, 3, 'alex', [2, 3, 4, 'taibai'])
2.2公共方法
(1)len():计算元祖的长度
tu1 = (1,2,3,4,84,5,2,8,2,11,88,2)
print(len(tu1)) #12
(2)count(): 查找元素在元祖中出现的次数
tu1 = ('熊猫', '狮子', '大象', '猴子','猴子')
print(tu1.count('猴子')) # 2
(3)index(): 查找元素的索引,找不到报错
tu = ('松鼠', [1, 2, 3], '香蕉', '女神')
print(tu.index('女神')) #3
2.3 join()方法
将可迭代对象中的元素以指定的字符连接生成一个新的字符串
s = 'alex'
s1= '_'.join(s)
print(s1) #a_l_e_x
列表转化成字符串list -----> str
li = ['taibai','alex','wusir','egon','女神',]
s = '++'.join(li)
print(s) #taibai++alex++wusir++egon++女神
2.4 range()
可创建一个整数列表
for i in range(3,10):
print(i)
for i in range(10):
print(i)
for i in range(0,10,3):
print(i)
for i in range(10,0,-2):
print(i)
for i in range(10,-1,-2):
print(i)
li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds']
for i in li:
if type(i) == list:
for k in i:
print(k)
else:print(i)