【Python基础知识】(10)列表(List)

一、 特点

  • 列表中的数据按顺序排列

  • 列表有正序和倒序两种索引

    正序下标从0开始
    倒序下标从-1开始

  • 可以存储任意类型,且允许重复

二、方法

# 列表的创建
# 变量名 = [元素1,元素2,……]

list1 = ['a','b','c',1,2,3,3,4]
print(list1) # 输出:['a', 'b', 'c', 1, 2, 3, 3, 4]


# 空列表是很有用的,可以不断的往里面加数据

list2 = []
print(list2) # 输出:[]
  1. 常用
  • list.index([指定元素])
    返回指定元素第一次出现时的索引值
# 列表的取值

list1 = ["张三","李四","王五","赵六","钱七","孙八"]
print(list1) 

# 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八']


# 输出:赵六
print(list1[3])
print(list1[-3])


# 范围取值:列表变量 = 原列表变量[起始索引 : 结束索引]
# Python中列表范围取值是“左闭右开”

list2 = list1[1 : 4]
print(list2) # 输出:['李四', '王五', '赵六']


# 列表的index函数用于获取指定元素第一次出现的索引值

index = list1.index("李四")
print(index)
  • len(列表名)
    获取列表长度
  • list.reverse():反转
  • list.sort():排序,默认升序
    List.sort(reverse = True):降序
# 列表的反转与排序
persons = ["张三","李四","王五","赵六","钱七","孙八"]
numbers = [23,25,22,10,18,6]

# 反转列表
persons.reverse()
print(persons)
# 输出:['孙八', '钱七', '赵六', '王五', '李四', '张三']

# 对列表进行排序:默认为升序排列,sort(reverse=True)代表降序排列
numbers.sort()
print(numbers)
# 其他常用方法
persons = ["张三","赵六","李四","王五","赵六","钱七","孙八"]	
  • list.count([指定元素]):获取指定元素出现次数
# 获取指定元素出现次数
cnt = persons.count("赵六")
print(cnt) # 输出:2
  • list.expend([指定列表]):将列表中的元素追加到列表末尾
# 追加操作
# append是将整个列表追加至末尾,extend则是将列表中的元素追加到列表末尾
persons.append(["杨九","吴十"])
print(persons)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十']]

persons.extend(["杨九","吴十"])
print(persons)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十'], '杨九', '吴十']
  • in:判断元素是否存在
# in:用于判断数据在列表中是否存在,存在返回True,反之返回False
is_exist = "张三" in persons
print(is_exist) # 输出:True
  • list.copy():复制列表
# copy:用于复制表   注意:person1与person不是同一个对象
persons1 = persons.copy()
persons2 = persons
print(persons1)

is_same = persons1 is persons
print(is_same) # 输出:False

is_same = persons2 is persons
print(is_same) # 输出:True
  • list.clear():清空列表
# clear:清空列表
persons.clear()
print(persons)
# 输出:[]

print(persons1)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十'], '杨九', '吴十']

print(persons2)
# 输出:[]
  1. 增删改
# 列表的写操作
persons = ["张三","李四","王五","赵六","钱七","孙八"]
  • list.append(新元素)
    在列表末端添加
  • list.insert(索引,新元素)
    在指定索引处加入新元素
# 列表的追加
persons.append("杨九")
print(persons)
# 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八', '杨九']

# 列表的插入
persons.insert(2,"刘二")
print(persons)
# 输出:['张三', '李四', '刘二', '王五', '赵六', '钱七', '孙八', '杨九']

persons.insert(len(persons),"候大")  # 实现了追加的效果
print(persons)
# 输出:['张三', '李四', '刘二', '王五', '赵六', '钱七', '孙八', '杨九', '候大']
  • list[索引值] = 新值
    更新指定索引处的数据

  • list[起始索引 : 结束索引] = 新列表
    更新指定范围数据

# 列表的更新
persons[2] = "宋二"
print(persons)
# 输出:['张三', '李四', '宋二', '王五', '赵六', '钱七', '孙八', '杨九', '候大']

# 更换列表范围内的值(注意左闭右开)
persons[3 : 5] = ["赵六","王五"]
print(persons)
# 输出:['张三', '李四', '宋二', '赵六', '王五', '钱七', '孙八', '杨九', '候大']
  • list.remove(元素)
    删除指定元素
  • list.pop(索引)
    按索引删除指定元素
# 列表的删除
persons.remove("宋二")
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '钱七', '孙八', '杨九', '候大']

# 按索引值删除元素
persons.pop(4)
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '孙八', '杨九', '候大']

# 利用更改操作达到删除效果
persons[4 : 6] = []
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '候大']

三、 遍历列表

for…in(专门用于遍历列表)
for 迭代变量 in 可迭代对象

# 遍历列表

persons = ["张三","李四","王五","赵六","钱七","孙八"]

# for循环遍历列表
# for 迭代变量 in 可迭代对象

i = 0

# 获取列表长度:len(str)

length = len(persons)

for p in persons:

    if p == "李四":

        #获取倒序下标
        ri = length * -1 + i

        print(p , i , ri)

    i += 1

# 输出:李四 1 -5

四、 循环体

while循环遍历
通过遍历下标

# while循环遍历列表

i = 0

while i < len(persons):

    p = persons[i]

    if p == "李四":

        # 获取倒序下标
        ri = length * -1 + i

        print(p, i, ri)

    i += 1

# 输出:李四 1 -5

五、多维列表(嵌套列表)

# 多维列表(嵌套列表)

# [[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资]]

# str = "张三,30,2000"

# l = str.split(",")

# print(l)

# 输出:['张三', '30', '2000']

emp_list = []

while True:

    info = input("请输入员工信息:")

    if info == "":

        print("程序结束")

        break

    info_list = info.split(",")

    print(len(info_list))

    if len(info_list) != 3:

        print("输入格式不正确,重新输入!")

        continue

    emp_list.append(info_list)

    for emp in emp_list:

        print("姓名:{},年龄:{},工资:{}".format(emp[0],emp[1],emp[2]))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值