day12 Python列表
list#类
列表概括
li = [1,2,13,["石振文",["19", 10],"庞麦郎"],"charon","pluto"]#通过list类创建的对象 print(li) #中括号括起来 #,分割每个元素 #列表中得元素可以是数字,字符串,列表,布尔值。#可以在列表中嵌套列表 #集合,内部可以放置任何东西 #可以通过索引取值 print(li[2]) #可以通过切片取值,切片的结果也是列表>=2 <5 print(li[2:5])
#for,while循环
for i in li: print(i)
#查找列表中的列表
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] print(li[4][1][1]) 结果: 10
#字符串转换成列表
s = "pouaskdfauspdfiajsdkfj" new_li = list(s) print(new_li) 结果: ['p', 'o', 'u', 'a', 's', 'k', 'd', 'f', 'a', 'u', 's', 'p', 'd', 'f', 'i', 'a', 'j', 's', 'd', 'k', 'f', 'j'] #内部使用for循环
#列表转换字符串
# 列表转换成字符串, # 需要自己写for循环一个一个处理: 既有数字又有字符串 li = [11,22,33,"123","alex"] r = str(li) # '[11,22,33,"123","alex"]' print(r) s = "" for i in li: s = s + str(i) print(s)
灰魔法: list类中提供的方法
1、原来值最后追加append
li = [11,22,33,44] li.append(5) li.append("charon") li.append([111,"pluto"]) print(li) 结果: [11, 22, 33, 44, 5, 'charon', [111, 'pluto']]
2、清空列表clear
li = [11,22,33,44] li.clear() print(li) 结果: []
3、拷贝,浅拷贝copy
li = [11,22,33,44] v = li.copy() print(li) print(v) 结果: [11, 22, 33, 44] [11, 22, 33, 44]
4、计算元素出现的次数count
li = [11,22,33,44,33] v = li.count(33) print(v) 结果: 2
5、扩展原列表、参数:可迭代对象extend
li = [11, 22, 33, 22, 44] v = ["charon",1121] # li.append([9898,"不得了"]) #print(li) li.extend(v) print(li) 结果: [11, 22, 33, 22, 44, 'charon', 1121]
6、根据值获取当前索引位置(左边优先)index
li = [11, 22, 33, 22, 44] v = li.index(22) print(v) 结果: 1
7、在指定索引位置插入元素insert
li = [11, 22, 33, 22, 44] li.insert(0,99) print(li) 结果: [99, 11, 22, 33, 22, 44]
8、删除某个值(1、指定索引。2、默认最后一个值),并获取删除的值pop
li = [11, 22, 33, 22, 44] v = li.pop() v1 = li.pop(1) print(li) print(v) print(v1) 结果: [11, 33, 22] 44 22
9、删除列表中得指定值,左边优先remove
li = [11, 22, 33, 22, 44] li.remove(22) print(li) 结果: [11, 33, 22, 44]
10、将当前列表进行翻转reverse
li = [11, 22, 33, 22, 44] li.reverse() print(li) 结果: [44, 22, 33, 22, 11]
11、列表的排序sort
li = [11, 44,22, 33, 22, 10] li.sort() print(li) 结果: [10, 11, 22, 22, 33, 44] li = [11, 44,22, 33, 22, 10] li.sort(reverse=True) print(li) 结果: [44, 33, 22, 22, 11, 10]
12、补充
####################################### 深灰魔法 ####################################### # 1. 列表格式 # 2. 列表中可以嵌套任何类型 # 中括号括起来 # ,分割每个元素 # 列表中的元素可以是 数字,字符串,列表,布尔值..所有的都能放进去 # “集合”,内部放置任何东西 """ # 3. # 索引取值 print(li[3]) # 4 切片,切片结果也是列表 print(li[3:-1]) # 5 for循环 # while循环 for item in li: print(item) """ # 列表元素,可以被修改 # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] ############## 6 索引 # 修改 # li[1] = 120 # print(li) # li[1] = [11,22,33,44] # print(li) # 删除,第一种方式 # del li[1] # print(li) ############## 7 切片 # 修改 # li[1:3] = [120,90] # print(li) # 删除 # del li[2:6] # print(li) # 8 in 操作 # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] # v1 = "石振文" in li # print(v1) # v2 = "age" in li # print(v2) ###### 列表中的元素, # 9 操作 # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] # li[4][1][0] # [1] # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] # s = "pouaskdfauspdfiajsdkfj" # s = 123 # a = "123" # int(a) # a = 123 # str(a) # 10 转换 # 字符串转换列表 li = list("asdfasdfasdf"), 内部使用for循环 # s = "pouaskdfauspdfiajsdkfj" # new_li = list(s) # print(new_li) # 列表转换成字符串, # 需要自己写for循环一个一个处理: 既有数字又有字符串 # li = [11,22,33,"123","alex"] # # r = str(li) # '[11,22,33,"123","alex"]' # # print(r) # s = "" # for i in li: # s = s + str(i) # print(s) # 直接使用字符串join方法:列表中的元素只有字符串 # li = ["123","alex"] # v = "".join(li) # print(v) ### 补充:字符串创建后,不可修改 # v = "alex" # v = v.replace('l','el') # print(v) # li = [11,22,33,44] # li[0] # li[0] = 999 # s = "alex" # li[0] # s[0] = "E" # li = [11,22,33,44] # print(li) # print(li) # print(li) # print(li) # print(li) # print(li) # print(li) # print(li) # 列表,有序;元素可以被修改 # 列表 # list # li = [111,22,33,44]