ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python高级变量类型--列表

2022-03-07 16:01:31  阅读:198  来源: 互联网

标签:name Python 元素 list wangwu -- 列表 my


1.列表

1.1 列表含义

  • List(列表)是Python使用最频繁的数据列表,在其他语言中叫数组,是专门用来存储一串数据,存储的数据称之为元素
  • 列表是一个线性的集合,它允许用户在任何位置插入、删除、访问和替换元素。列表实现是基于数组或基于链表结构的。当使用列表迭代器的时候,双链表结构比单链表结构更快。有序的列表是元素总是按照升序或者降序排列的元素。
  • 列表用[]定义,元素之间用,分割,列表的索引从0开始

1.2 列表实现原理

Python中的列表基于PyListObject实现,列表支持元素的插入、删除、更新操作,因此PyListObject是一个变长对象(列表的长度随着元素的增加和删除而变长和变短),同时它还是一个可变对象(列表中的元素根据列表的操作而发生变化,内存大小动态的变化)。
详情请参考博客:https://www.pianshen.com/article/80091334729/

1.3 常用操作

name_list = ["zhangsan", "lisi", "wangwu"]

# append 在末尾追加数据
name_list.append("zhangliu")
输出:["zhangsan", "lisi", "wangwu", "zhangliu"]

# insert 在指定位置插入数据(位置前有空元素会自动补位)
name_list.insert(0, "zhangliu")
输出:["zhangliu", "zhangsan", "lisi", "wangwu"]

# extend  将可迭代对象追加到列表
age_list = [20, 18, 45]
name_list.extend(age_list)
输出:["zhangsan", "lisi", "wangwu", 20, 18, 45]

# del 删除指定索引的数据,如果索引溢出,则抛出索引越界的错误
del name_list[0]
输出:["lisi", "wangwu"]

# remove 删除第一个出现的指定元素,元素不存在,则抛出 ValueError: list.remove(x): x not in list 的错误
name_list.remove("zhangsan")
输出:["lisi", "wangwu"]

# pop 删除指定索引的数据,默认删除默认的数据,返回被删除的元素
name_list.pop()
输出:wangwu

# 修改
name_list[0] = "zhangliu"
输出:["zhangliu", "lisi", "wangwu"]

# 排序 reverse=True表示降序,默认为升序
name.sort()
输出:['lisi', 'wangwu', 'zhangsan']

1.4 高级操作

# 切片
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[1:4]) # 获取列表中第2到第4元素
print(my_list[:]) # 获取列表所有元素
print(my_list[-5:-1]) # 反向索引
输出:[4, 5, 6, 7]

# 循环
for i in my_list:
    print(i) # 依次打印列表中的元素

# 去重
my_list = [1, 2, 3, 4, 1, 2, 11]
# 使用集合方式:先将列表转成set,最后将去重后的set转成集合
set(my_list) # {1, 2, 3, 4, 11}
print(set(my_list)) 
输出:[1, 2, 3, 4, 11]

# 使用遍历方式
new_list = list()
for i in my_list:
    if i not in new_list:
        new_list.append(i)
print(new_list)
输出:[1, 2, 3, 4, 11]

标签:name,Python,元素,list,wangwu,--,列表,my
来源: https://www.cnblogs.com/kb-python/p/15976319.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有