美文网首页
03.基本数据类型--列表

03.基本数据类型--列表

作者: 哈哈大圣 | 来源:发表于2019-12-14 23:45 被阅读0次

1). List列表

  1. list类,列表,有序的(下标从0开始),元素可以被修改
  2. list 类、中括号括起来,逗号分割每一个元素。
  3. 列表中可以是数字、字符串、列表<嵌套>、元组、布尔值,字典等等,
  4. 列表创建了可以修改<用索引> 。
  5. list类的一个对象,集合,内部可以放置任何东西,支持for while循环。
  • 切片使用案例
li = [1, 12, 9, "age", ["唐纳德", ["19", 10], "詹姆斯·高斯林"], "alf", True]

2). list切片获取元素

# 索引取元素
li[4][0]
# 切片取值,0~倒数第四个4 结果也是一个列表,要头不要尾
li[0:-3]
# 将列表后面5个全取出 
li[-5:]
# 从开始到2
li[:3]  
# 全部取出来
li[:]
# 以步长取数
li[0:7:2]

3). list切片修改元素

# 给相应的一个元素修改赋值
li[1] = [1,2,3,4,5]
# 利用切片的方法给列表中对应的元素赋值
li[1:3] = [120,90]
# 批量修改,很少用,会将字符串拆开
li[4:6] = 'haha'

4). list切片删除元素

# 删除列表中的一个元素
del li[1]
# 用切片的方法删除多个元素
del li[1:3]
# 全清空 
del li[:]

5). list集合运算相关

# 判断一个元素是否包含在该列表中
print(12 in li)
print(12 not in li)
# 扩展拼接
f = li + li

6). 字符串、列表相互转换

# 转换成['a', 'b', 'c', 'd', 'e', 'f', 'g'] 
# 然而数字类型不可以用循环迭代,不可以转换
s = 'abcdefg12345'
new_s = list(s)
# 前提是列表全部为字符串
li = ['sdg','df','df','df']
print(''.join(li))  
# 当列表包含多种元素想拼接转换为字符串,只能用for循环
li = [11,22,33,'123','alf']
print(str(li))
# 只能转化为"[11,22,33,"123","alf"]"

new_li = ''
for i in li:
    new_li += str(i)

7). list内置函数

自带函数的源码中,self表示用自身对象引用方法,index表示索引,value代表值

  • 数据演示示例
li = [11, 22, 33, 22, 44]
  1. 追加元素
# 在列表后面追加元素
li.append(5)
li.append("alf")
li.append([1234,2323])
  1. 清空列表
li.clear()
  1. 浅拷贝
v = li.copy()  # 拷贝,浅拷贝,只拷贝父对象
  1. 计算元素出现的次数
v = li.count(22)
  1. 拓展追加列表
li.extend([9898,"不得了",[1,2]])
# 扩展原列表,参数为一个可迭代对象,
for i in [9898,"不得了",[1,2]]:
    li.append(i)
# 一个一个字符追加
li.extend("不得了")

# 元组,效果同上
li.extend((11,22,33,))
  1. 根据值获取当前值索引位置(左边优先)
v= li.index(22)
  1. 在指定索引位置插入元素
li.insert(1, 99) 
print(li)
  1. pop操作:指定索引,删除对饮的值;默认删除最后一个,并返回被删除的值
v = li.pop()
f = li.pop(1)
  1. 删除列表中的指定的一个值,只能是value,不能为index,左边优先
li.remove(22)

列表删除的方法总结: li.pop() li.remove() del li[0] del li[7:9] li.clear()

  1. 将当前列表进行翻转
li.reverse()
  1. 排序,默认从小到大排序
li.sort()  # 列表的排序
li.sort(reverse=True)  #列表的排序,从大到小排序
  1. 使用内置函数排序
student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]

# lambda表达式 sort by age
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
sorted(student_tuples, key=lambda student: student[2])
  1. 拓展:对对象实现排序
class Student:
    def __init__(self, name, grade, age):
            self.name = name
            self.grade = grade
            self.age = age
    def __repr__(self):
            return repr((self.name, self.grade, self.age))

student_objects = [
    Student('john', 'A', 15),
    Student('jane', 'B', 12),
    Student('dave', 'B', 10),
]

sorted(student_objects, key=lambda student: student.age)   # sort by age
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
  1. 拓展:解压序列
a, b, c = (1,2,3)     #解压序列 ,必须一一对应
a, *_, b = [1, 2, 3, 4, 5]  #: a = 1;  _ =[2,3,4]; b = 5   _ 也可以写成其他

相关文章

网友评论

      本文标题:03.基本数据类型--列表

      本文链接:https://www.haomeiwen.com/subject/petknctx.html