1.列表
1)增加 append():
li = ['alex', 'wusir', 'egon', '女神', 'taibai']
li.append('日天')
li.append(1) # 在后边追加
print(li) # ['alex','wusir','egon','女神','taibai','日天',1]
》while 1: # 完成持续增加,按Q/q退出
username = input('>>>')
if username.strip().upper() == 'Q': #去空格 大写
print('已退出')
break
else:
li.append(username)
print(li)
2)插入 insert():
li.insert(4,'春哥') # 插入到4的位置
print(li) # ['alex', 'wusir', 'egon', '女神', '春哥', 'taibai']
3)迭代插入 extend(): # int类型不可迭代,分解到元素,插入一个个元素
li.extend('二哥')
li.extend([1,2,3])
print(li) # ['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥', 1, 2, 3]
4)删除 pop() remove():
li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]
name = li.pop(1) # 按下标删除 有返回值,返回删除的元素 默认删除最后一个
print(name,li) # alex ['taibai', 'wusir', 'egon', '女神']
li.remove('taibai') # 按元素去删除 无返回值
print(li) # ['alex', 'wusir', 'egon', '女神']
5)清空 clear():
li.clear()
print(li) # []
6)删除列表 del():
del li # 直接在内存中删除这个列表 再打印会报错
print(li)
7)切片删除 del():
li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]
del li[0:2] # ['wusir','egon','女神']
del li[2:] # ['taibai','alex']
print(li)
8)改:
li[0] = '男兽' # 直接赋值覆盖
print(li) # ['男兽', 'alex', 'wusir', 'egon', '女神']
9)切片删除后迭代插入:
li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]
li[0:2] = '云姐asdf' # 把前两个删除,然后迭代插入每一个元素
print(li) # ['云', '姐', 'a', 's', 'd', 'f', 'wusir', 'egon', '女神']
li[0:3] = [1,2,3,'春哥','咸鱼哥'] # 把前两个删除,然后插入这五个(因为用的是列表)
print(li) # [1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']
10)查
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
l1 = li[0]
print(l1) # alex
l2 = li[0:3]
print(l2) # ['alex',[1,2,3],'wusir'] 切片查打印出来是列表
for i in li:
print(i) # 竖着打印出来 taibai alex wusir egon 女神
li = ['alex', 'wusir', 'egon', '女神', 'taibai']
print(li.index('wusir')) # 1
print(li.index('wusir',1,2)) # 可切片 返回位置 找不到报错
11)元素个数 len(li)
12)元素出现次数:
print(li.count('taibai')) # 返回出现次数 1
13)排序 sort():
正向排序:
li = [1,5,4,7,6,2,3]
li.sort()
print(li) # [1,2,3,4,5,6,7]
反向排序:
li.sort(reverse=True) # 默认false 改成true
print(li) # [7,6,5,4,3,2,1]
14)反转 reverse():
li.reverse()
print(li) # [3,2,6,7,4,5,1]
2.列表的嵌套
li = ['taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
print(li[1][1]) # 藤
1)首字母大写再放回去
》 name = li[0].capitalize()
li[0] = name
print(li) # ['Taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
》 li[0] = li[0].capitalize() # 前两句合成一句写
print(li) # 结果一样
2)把alex全变成大写再放回原处
li[3][0] = li[3][0].upper()
print(li) # ['taibai', '武藤兰', '苑昊', ['ALEX', 'egon', 89], 23]
3)替换
直接赋值覆盖:
li[2] = '苑日天'
print(li) # ['taibai', '武藤兰', '苑日天', ['alex', 'egon', 89], 23]
元素内部改变:
li[2] = li[2].replace('昊','ritian')
print(li) # ['taibai', '武藤兰', '苑ritian', ['alex', 'egon', 89], 23]
3.元组
只读列表,可循环查询,可切片。
儿子不能改,孙子可能可以改(如果是属于列表 可改)
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
1) for i in tu:
print(i) # 竖着打印
2) tu[4][3]=tu[4][3].upper()
print(tu) # taibai全大写再放回去,因为儿子是列表,所以可以改孙子
3) tu[4].append('sb') # 列表后追加
print(tu) # (1, 2, 3, 'alex', [2, 3, 4, 'taibai', 'sb'], 'egon')
4) join 可迭代对象都可操作(除了数字 bool )
s = 'alex'
s1 = '-'.join(s) # 用-连接可迭代对象的每一个元素
print(s1) # a-l-e-x
5) 列表转化成字符串 list ----> str join()
li = ['taibai','alex','wusir','egon','女神',]
s = ''.join(li) # taibaialexwusiregon女神 (无缝衔接)
print(s)
字符串转化为列表 str ----> list split() 分割
4.range
实际上就是一个按顺序排列的数字的列表
for i in range(3,10):
print(i) # 竖着打印3456789 顾头不顾尾
for i in range(10):
print(i) # 默认从0开头 0123456789
for i in range(0,10,3):
print(i) # 3是步长 0369
for i in range(10,0,-2):
print(i) # 10 8 6 4 2
for i in range(0,10,-1):
print(i) # 不报错 但什么也不输出(面试题)
for i in range(8,-3,-2):
print(i) # 8 6 4 2 0 -2
循环打印列表中元素,嵌套的列表也拆开打印
li = [1, 2, 3, 5, 'alex', [2, 3, 4, 5, 'taibai'], 'afds']
》 for i in li: # 法一
if type(i) == list: # 此处i代表元素
for k in i:
print(k)
else:print(i)
》 for i in range(len(li)): # 法二
if type(li[i]) == list: # 此处i代表下标
for j in li[i]:
print(j)
else:
print(li[i])