My_Project

资料整理


Python序列应用-列表

<p>1、列表定义</p> <pre><code>列表 1.1、列表是一个可以被修改的序列,所以我们对列表修改会直接修改到他本身,我们想要查看效果必须查看列表本身。 1.2、列表是一个有序的,可修改的,元素以逗号分割,以中括号包围的序列。 1.3、列表是用来存储数据的,列表可以存储多个多种类型的数据。 定义 list = [1,2.3,'hello',[1,2,4,5],(1,2,3)] list = [ "hello","桃花源记","###",123456, {'name':'jason','password':123456}, {'name':'张三','password':123478} ]</code></pre> <p>2、创建列表</p> <pre><code>2.1、直接创建 方法 list=[a1,a2...an] 说明 list:列表名称,可以是任何符合python命名规则的标识符。 a1...an:列表中的元素,个数没有限制,只要是python支持的数据类型就可以, 通常一个列表中值放一种数据类型,可以提高程序的可读性。 2.2、创建空列表 方法 list=[] 2.3、创建数值列表 方法 list=(data) 说明 data可以表示可以转换为列表得数据,类型可以是range对象、字符串、元组或其他可迭代类型得数据。 案例:10-20之间所有偶数列表。 list(range(10,20,2))</code></pre> <p>3、删除列表</p> <pre><code>3.1、用del删除 方法 del list 说明 (1)del语句在实际开发中并不常用,因为Python自带得垃圾回收机制会自动销毁不用的列表,所以即使我们不手动删除,python也会自动将其回收。 (2)删除是python内置功能,不是列表独有的。 案例 (1)删除整个列表 list = [1,2,3,4,5,'hello'] del list 注意:删除的列表不存在时会报错。 (2)删除列表中指定的元素 list = [1,2,3,4,5,'hello'] del list[1] print(list) #结果:[1, 3, 4, 5, 'hello'] 3.2、用clear删除 方法 list.clear() 说明 清空列表中的数据,返回一个空列表。 案例 list = [1,2,3,4,5,'hello'] list.clear() print(list) 输出:[] 3.3、用remove删除 方法 list.remove() 说明: 从左往右删除指定的第一个元素 ,如果元素不存在,会报异常。 案例 list = [1,2,3,4,5,'hello'] list.remove('hello') print(list) #结果:[1, 2, 3, 4, 5] 4、用pop删除 方法 list.pop() 说明 弹出,返回并删除指定索引位置上的数据,默认-1。 案例 list = [1,2,3,4,5,'hello'] list.pop(5) print(list) #结果:[1,2,3,4,5]</code></pre> <p>4、访问列表</p> <pre><code>4.1、访问整个列表 方法 print(list) 说明 返回整个列表内容。 案例 list=["ABC","世界","美好"] print(list) 输出: ['ABC', '世界', '美好'] 4.2、访问列表中的某个元素 方法 list[index] 说明: 从左往右返回查找到的第一个指定元素的索引,如果没有找到会报错。 案例 list = [1,2,3,4,5,'hello'] print(list[3]) 输出:4</code></pre> <p>5、遍历列表</p> <pre><code>5.1、使用for循环实现 (1)通过下标索引index实现 方法 通过下标索引循环遍历打印列表中的数据。 list=[] print(list[index]) 案例 list=[1,2,3,4,5] print(list[0]) 输出:1 list=[1,2,3,4,5] for i in range(0,len(list)): print(list[i],end="") 输出:12345 list=[1,2,3,4,5] for i in range(0,len(list)): print(i,end=" ") 输出:0 1 2 3 4 (2)通过普通for循环实现 方法 list=[] for i in list: print(i) 案例 list=[1,2,3,4,5] for i in list: print(i) 5.2、使用for循环和enumerate()函数实现 方法 使用for循环和enumerate()函数可以实现同时输出索引值和元素内容,输出index和item。 for index,item in enumerate(listname) 参数说明: .index:用于保存元素的索引。 .item:用于保存获取的元素值,要输出元素内容时,直接输出该变量即可。 .listname:为列表名称。 案例 list=["YES","CHINA","坦率","城市","优秀","幸福"] for index,item in enumerate(list): print(index+1,item) 输出: 1 YES 2 CHINA 3 坦率 4 城市 5 优秀 6 幸福 5.3、使用while循环实现 方法 while循环中i值是不会自动增加的,所以要注明i=i+1. 案例 list=[1,2,3,4,5] i = 1 while i &lt; 5: print(i) i = i + 1 输出:1 2 3 4</code></pre> <p>6、列表排序</p> <pre><code>6.1、使用列表对象方法sort()实现 方法 list.sort(key=None,reverse=False) 说明 list:要进行排序的列表 key:指定一个从每个列表元素中提取一个比较键(例如,设置"key=str.lower",表示在排序时不区分字母大小写) reverse:可选参数,如果为True,表示降序排列;为False,表示升序排列。默认为升序排列。 注意 1.sort()方法对字符串列表进行排序时,采用的规则是:先对大写字母进行排序,在对小写字母进行排序。 2.如果想对字符串列表进行排序而且不区分大小写,需要指定key参数。 例如 A=[caT,tom,TAM,AS,pet] A.sort() print("区分大小写:",A) A.sort(key=str.lower) print("不区分大小写:",A) 案例 grade=[98,99,97,100,100,96,95,100] print("原列表:",grade) grade.sort() print("升序:",grade) grade.sort(reverse=False) print("降序:",grade) 注意 1.sort()对中文支持不好,排序结果和我们常用的按拼音或按笔画都不一致。 2.如果要实现对中文进行排序,还需要重新编写相应的方法进行处理,不能直接使用sort()方法。 6.2、使用内置函数sorted()实现 方法 sorted(list,key=None,reverse=False) 参数 list:要进行排序的列表名称 key:指定一个从每个列表元素中提取一个比较键(例如,设置"key=str.lower",表示在排序时不区分字母大小写) reverse:可选参数,如果为True,表示降序排列;为False,表示升序排列。默认为升序排列。 注意 1.sort()方法对字符串列表进行排序时,采用的规则是:先对大写字母进行排序,在对小写字母进行排序。 2.如果想对字符串列表进行排序而且不区分大小写,需要指定key参数。 例如 A=[caT,tom,TAM,AS,pet] A.sort() print("区分大小写:",A) A.sort(key=str.lower) print("不区分大小写:",A) 说明 1.内置sorted()函数和列表对象的sort()方法作用基本相同,所不同的是:sort()方法会改变列表元素排列顺序;sorted()函数会建立一个原列表的副本,该副本为排序后的列表。 案例 grade=[98,99,97,100,100,96,95,100] print("原列表:",grade) A=sorted(grade) print("升序:",A) B=sorted(grade,reverse=True) print("降序:",B) 6.3、使用reverse()实现 方法 按照索引顺序倒序/反向排序。 格式 list.reverse() 案例 list=[1,6,9,3,2,7,5,8,4] list.reverse() print(list) 输出:[4, 8, 5, 7, 2, 3, 9, 6, 1]</code></pre> <p>7、列表的索引</p> <pre><code>列表的索引和字符串的索引类似,但不完全相同,因为列表可以修改,所以我们可以通过列表的索引来修改列表。 案例 list = range(10) print(list) 输出:range(0, 10) print(list[0]) 输出:0 print(list[-1]) 输出:9 print(list[0:10]) 输出:range(0, 10) print(list[:7]) 输出:range(0, 7) print(list[0:]) 输出:range(0, 10) print(list[:]) 输出:range(0, 10) print(list[0:10:2]) 输出:range(0, 10, 2) print(list[::2]) 输出:range(0, 10, 2) print(list[::-1]) 输出:range(9, -1, -1)</code></pre> <p>8、列表推导式</p> <pre><code>8.1、生成指定范围的数值列表 方法 list=[Expression for var in range] 参数说明 list:生成的列表名称。 Expression:表达式,用于计算新列表的元素。 var:循环变量。 range:采用range函数生成的range对象。 案例 生成一个包括10个随机数的列表,要求数的范围在10-100(包括)之间。 代码如下: import random list = [random.randint(10,100) for i in range(10)] print("生成的随机数:",list) 输出: 生成的随机数: [62, 78, 49, 13, 82, 66, 33, 42, 57, 100] 8.2、根据列表生成指定需求的列表 方法 newlist=[Expression for var in list] 参数说明 newlist:新生成的列表名称。 Expression:表达式,用于计算新列表的元素。 var:循环变量。 list:用于生成新列表的原列表。 案例 定义一个商品价格列表,用列表推导式生成一个商品价格为5折的新列表. 代码如下: list=[22,33,44,66] newlist=[int(x*0.5) for x in list] print("原价格:",list) print("新价格:",newlist) 输出: 原价格 [22, 33, 44, 66] 新价格 [11, 16, 22, 33] 8.3、从列表中选择符合条件的元素组成新列表 方法 newlist=[Expression for var in list if condition] 参数说明 newlist:新生成的列表名称。 Expression:表达式,用于计算新列表的元素。 var:循环变量。 list:用于生成新列表的原列表。 condition:条件表达式,用于指定筛选条件。 案例 定义一个商品价格列表,用列表推导式生成一个商品价格高于50的新列表。 代码如下: list=[22,33,44,66] newlist=[x for x in list if x&gt;50] print("原列表:",list) 输出: 原价格 [22, 33, 44, 66] 新价格 [11, 16, 22, 33] print("高于50的列表:",newlist) 输出: 原列表 [22, 33, 44, 66] 高于50的列表 [66] 案例 list = [num for num in range(10)] print(list) 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list = [str(num) for num in range(10)] print(list) 输出: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] list = [str(num) for num in range(10) if num%2 == 0] print(list) 输出: ['0', '2', '4', '6', '8'] list = [(x,y) for x in range(4) for y in "abcd" ] print(list) 输出: [ (0, 'a'), (0, 'b'), (0, 'c'), (0, 'd'), (1, 'a'), (1, 'b'), (1, 'c'), (1, 'd'), (2, 'a'), (2, 'b'), (2, 'c'), (2, 'd'), (3, 'a'), (3, 'b'), (3, 'c'), (3, 'd')] list = [[x,y] for x in range(4) for y in "abcd" ] print(list) 输出: [ [0, 'a'], [0, 'b'], [0, 'c'], [0, 'd'], [1, 'a'], [1, 'b'], [1, 'c'], [1, 'd'], [2, 'a'], [2, 'b'], [2, 'c'], [2, 'd'], [3, 'a'], [3, 'b'], [3, 'c'], [3, 'd']]</code></pre> <p>9、添加列表元素</p> <pre><code>9.1、用insert()方法添加 方法 添加元素到列表的指定位置上,注意负索引。 list.insert(index,obj) 案例 list = [1,2,3,4,5] list.insert(1,'nihao') print(list) 输出:[1, 'nihao', 2, 3, 4, 5] 9.2、用append()方法添加 方法 追加,在列表的尾部加入指定的元素。 list.append(obj) 案例 list=["YES","CHINA","坦率","优秀"] list.append("幸福") print(list) 输出:['YES', 'CHINA', '坦率', '优秀', '幸福'] 9.3、用extend()方法添加 方法 把一个列表的所有元素添加另外一个列表中,list1的内容将追加到list的后面。 list.extend(list1) 案例 list=["YES","CHINA","坦率","优秀"] list1=["A1","A2"] list.extend(list1) print(list) 输出:['YES', 'CHINA', '坦率', '优秀', 'A1', 'A2']</code></pre> <p>10、修改列表元素</p> <pre><code>方法 通过索引获取该元素,然后给其重新赋值即可。 list[index] = value 案例 list=["YES","CHINA","坦率","优秀"] list[1]="一切都将成为过去" print(list) 输出:['YES', '一切都将成为过去', '坦率', '优秀']</code></pre> <p>11、删除列表元素</p> <pre><code>11.1、根据索引删除 del list[index] 案例 list=["YES","CHINA","坦率","优秀"] del list[-1] print(list) 输出:['YES', 'CHINA', '坦率'] 11.2、根据元素值删除 方法 remove() 用这个方法最好判断下元素是不是存在,如果不存在会报错。 list=["YES","CHINA","坦率","优秀"] value="YES" if list.count(value)&gt;0: list.remove(value) print(list) 输出:['CHINA', '坦率', '优秀'] 案例 list=["YES","CHINA","坦率","优秀"] list.remove("YES") print(list) 输出:['CHINA', '坦率', '优秀']</code></pre> <p>12、统计计算列表</p> <pre><code>12.1、获取指定元素出现的次数 方法 list.count(obj) 案例 list=["YES","CHINA","坦率","优秀"] num=list.count("YES") print(num) 输出:1 12.2、获取指定元素首次出现的下标 方法 list.index(obj) 案例 list=["YES","CHINA","坦率","优秀"] A=list.index("坦率") print(A) 输出:2 12.3、统计数值列表的元素和 方法 sum(iterable[,start]) 案例 list=[98,99,97,91] total=sum(list) print("总数为:",total)</code></pre>

页面列表

ITEM_HTML