list类,列表
1、列表定义,及格式
1、通过中括号定义一个list类对象
2、逗号,分隔每个元素
3、列表中的元素可以是 数字,字符串,列表,布尔值..所有的都能放进去
4、集合内,可以放置任何东西
5、第一个索引是0,第二个索引是1,以此类推
#!/usr/bin/env python # -*- coding:utf-8 -*- # list # 类,列表 # 通过list类创建对象li ''' 1、中括号定义一个list类对象 2、逗号,分隔每个元素 3、列表中的元素可以是 数字,字符串,列表,布尔值..所有的都能放进去 4、集合内,可以放置任何东西 ''' li = [3,55,"wuchang",["张五常",["29",91],"梅超风"],"jason",True]
list1[0] ; #取第一个元素
list1[-1] # 取最后一个元素
list1[ : ] 或者 list1[ : len(list1)] # 取所有列表元素
list1[0 : n] # 从第0号取到n-1号元素
————————————————
2、列表取值,及遍历
① 索引取值:第一个索引是0,第二个索引是1,以此类推
②切片取值
③for、while循环遍历
li = [3,55,"wuchang",["张五常",["29",91],"梅超风"],"jason",True] # 取值:索引取值 print(li[3]) # ['张五常', ['29', 91], '梅超风'] print(li[3][1][0]) # 29 print(li[0]) # 3 # 切片,结果也是一个列表 print(li[4:6]) # ['jason', True] print(li[4:-1]) # ['jason'] # for循环,遍历 # while循环,遍历 for item in li: print(item)
3、修改
1、索引修改 2、切片修改
list[0] = 'D' # 修改元素值
li[1:3] = [88,99] # 切片修改
list.append('E') # 列表添加元素
list.insert(0 , 'F') # 在某处插入元素
li = [3,55,"wuchang",["张五常",["29",91],"梅超风"],"jason",True]
# 修改 """ 1、索引修改 2、切片修改 """ # 1、索引修改 li[1] = "challenge" print(li) # [3, 'challenge', 'wuchang', ['张五常', ['29', 91], '梅超风'], 'jason', True] li[1] = [1,2,3] print(li) # [3, [1, 2, 3], 'wuchang', ['张五常', ['29', 91], '梅超风'], 'jason', True] # 2、切片修改 li[1:3] = [88,99] print(li) # [3, 88, 99, ['张五常', ['29', 91], '梅超风'], 'jason', True]
4、删除
1、del li[1] 索引删除
2、del li[1:3] 切片删除
3、 list.remove('1') # 移除第一次出现的元素
4、 list.pop() # 移出元素,默认从最后移出,返回该元素值;括号中可加入元素索引值来移除
li = [3,55,"wuchang",["张五常",["29",91],"梅超风"],"jason",True]
# 删除 """ 1、索引删除 2、切片删除 """ # 1、索引删除 del li[1] print(li) # 2、切片删除 del li[1:3]
Python列表脚本操作符
列表对+和*的操作符与字符串相似,+号用于组合列表,*号用于重复列表。
Python表达式 | 结果 | 描述 |
len([1,2,3]) | 3 | 长度 |
[1,2,3]+[4,5,6] | [1,2,3,4,5,6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1,2,3] | True | 元素是否存在于列表中 |
for x in [1,2,3]: print x |
1 2 3 | 迭代 |
Python列表函数&方法
Python包含以下函数:
序号 | 函数 |
1 |
cmp(list1, list2) 比较两个列表的元素 |
2 |
len(list) 列表元素个数 |
3 |
max(list) 返回列表元素最大值 |
4 |
min(list) 返回列表元素最小值 |
5 |
list(seq) 将元组转换为列表 |
Python包含以下方法:
序号 | 方法 |
1 |
list.append(obj) 在列表末尾添加新的对象 |
2 |
list.count(obj) 统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 |
list.insert(index, obj) 将对象插入列表 |
6 |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并返回该元素的值 |
7 |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 |
list.reverse() 反向列表中的元素 |
9 |
list.sort(cmp=None, key=None,reverse=False) 对原列表进行排序 |
5、判断列表存在某个元素
li = [3,55,"wuchang",["张五常",["29",91],"梅超风"],"jason",True]
# 判断列表是否存在某个元素 v = True in li # True v = "a" in li # False print(v)
6、列表与字符串互转
# 类型转换 a = "10086" print(int(a)) i = 1024 print(str(i)) # 字符串是可迭代对象,可直接转换为list对象 # 字符串转换列表 s = "suijifdafljadffdkasf" new_li = list(s) print(new_li) # ['s', 'u', 'i', 'j', 'i', 'f', 'd', 'a', 'f', 'l', 'j', 'a', 'd', 'f', 'f', 'd', 'k', 'a', 's', 'f'] # 列表转字符串 # 仅将列表转换为字符串格式 li = [2,4,6,"fjkd","1024"] print(str(li)) # '[2, 4, 6, 'fjkd', '1024']' # 非纯字符串元素列表,无法使用join # 需要自己写一个for循环处理:既有数字又有字符串 s1 = "" for i in li: s1 += str(i) print(s1) # 非纯字符串元素列表,无法使用join # 需要自己写一个for循环处理:既有数字又有字符串 li1 = [2,4,6,"fjkd","1024"] print("_".join(li1)) # TypeError: sequence item 0: expected str instance, int found # 非纯字符串元素列表,无法使用join li2 = [2,3,4] print("_".join(li2)) # TypeError: sequence item 0: expected str instance, int found # 列表中只有字符串元素,可以直接使用join方法, # 将列表转换为字符串 li3 = ["a","b","c"] print("_".join(li3)) # a_b_c
7、列表追加
# 列表追加元素 li = [1,2,3,4,5] ret = li.append(6) print(ret) # None , append方法无返回值 print(li) # [1, 2, 3, 4, 5, 6] li.append("jason") print(li) # [1, 2, 3, 4, 5, 6, 'jason'] li.append([10010,10086]) print(li) # [1, 2, 3, 4, 5, 6, 'jason', [10010, 10086]]
8、列表清空
# 列表清空 li.clear() print(li) # []
9、拷贝,copy浅拷贝
# 拷贝、复制列表, copy浅拷贝 li = [1,2,3,4] n_li = li.copy() print(n_li) # [1, 2, 3, 4]
10、统计元素出现次数
# 统计元素出现次数 li = [11,22,22,33,55,55,55,6] c = li.count(55) # 统计列表中55的个数 print(c) # 3
11、打平后追加,extend
# 打平后追加 , extend # 将可迭代对象,打平后追加到列表 # def extend(self, iterable) li = [1,2,3,4,5,6] # li.append(["jason","陈平"]) # [1, 2, 3, 4, 5, ['jason', '陈平']] li.extend(["jason","陈平"]) # [1, 2, 3, 4, 5, 6, 'jason', '陈平'] print(li) # 对字符串进行列表extend追加操作 li = [1,2,3,4,5,6] li.extend("王羲之") print(li) # [1, 2, 3, 4, 5, 6, '王', '羲', '之']
12、获取元素首次出现的索引位置
# 获取元素首次出现的索引位置 # def index(self, value, start=None, stop=None) li = [11,22,22,33,55,55,55,6] i = li.index(55) print(i) # 4
13、插入
# 插入,指定位置插入元素 # def insert(self, index, p_object) li = [1,2,3,4,5,6] li.insert(0,"a") print(li) # ['a', 1, 2, 3, 4, 5, 6]
14、删除
# 删除元素 # 1、pop方法删除指定位置元素,并return该元素值 # def pop(self, index=None) , index默认值为-1,表示最后一个 li = [1,2,3,4,5,6] v = li.pop() print(v) # 6 print(li) # [1, 2, 3, 4, 5] li = [1,2,3,4,5,6] v = li.pop(1) print(v) # 2 print(li) # [1, 3, 4, 5, 6] # 2、 remove 删除列表中指定值,左边优先 # def remove(self, value) , 无返回值 li = [1,2,3,4,5,6] rm = li.remove(3) print(rm) # None print(li) # [1, 2, 4, 5, 6]
15、反转列表
# 反转列表 li22 = [1,2,3,4,5,6] li22.reverse() print(li22) # [6, 5, 4, 3, 2, 1]
16、排序方法
# 排序sort # def sort(self, key=None, reverse=False) li = [2,1,6,3,2,8,4] li.sort() # 升序 [1, 2, 2, 3, 4, 6, 8] # li.sort(reverse=True) # 降序 [8, 6, 4, 3, 2, 2, 1] print(li)