python 的内置容器  :    有四个

       list (列表)        set (集合)        tuple(元祖)           dict  (字典)

list  :  ( 列表 )    [  ]

定义 list  :   有两种方法来定义 列表

#     第一种 : 通过若数据类型语言的特点,直接将值赋值为一个变量

users = [ '中国','伟大','人民','永远万岁',77,54]
type(users)
<class 'list'>

可以看到 ,users 这个变量 就是 list 类型

#     第二种  : 通过 list 全局函数来定义创建

u2 = list()
type(u2)
<class 'list'>

:  第二种方式的赋值是如下 :

u2 = list([ '人民','伟大','马斯克',45,55])
print(u2)
['人民', '伟大', '马斯克', 45, 55]

 访问列表元素 :  通过访问列表元素的下标来获取元素

  :   下标是从 0  开始的!!!!

u2 = list([ '人民','伟大','马斯克',45,55])
u2[2]
'马斯克'

u2 [ 2 ]     ----->   获取 u2 中的 第3个 值

修改列表元素  :

u2 = list([ '人民','伟大','马斯克',45,55])
u2[4]='坏坏'
print( u2 )
['人民', '伟大', '马斯克', 45, '坏坏']
u2[3] = 55
print (u2)
['人民', '伟大', '马斯克', 55, '坏坏']

                        #      u2 [ 4 ] =  ' 坏坏 '     ----->    修改 u2 列表里第5个值为 ' 坏坏 '

    u2 [ 3 ] = ' 55'          ----->    修改 u2 列表里第4个值 为 '55'

列表的遍历  :

#    第一种  :  for  示例

for i in u2 :print(i)人民
伟大
马斯克
55
坏坏

#    第二种  :   while  示例

 u2 = list(['马斯克','厉害','秦始皇',77,100])index=0while index<len(u2) :print(u2[index])index+=1结果 :
马斯克
厉害
秦始皇
77
100

:  while 得自己造一个 索引 (index),通过索引来访问元素

列表的常见方法

dir(list)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

:  我们使用   dir()   这个全局函数可以查看模块,对象等 他们的全局函数

#   我们可以看到结果里面有很多 两侧都有的下划线的方法 : 类似 : _add_

这些叫做魔法方法,暂时不需要掌握!!!

 我们需要掌握的是 :

append       clear       copy          count                extend         sort  

                              index          insert        pop          remove             reverse        

#  接下来我们对这几个方法示例如下 :

 append    :     在尾部追加新的元素

示例  :

 u1=list(['巴西','中国','俄罗斯','印度',888,777])
print(u1)
['巴西', '中国', '俄罗斯', '印度', 888, 777]u1.append('美国')
print(u1)
['巴西', '中国', '俄罗斯', '印度', 888, 777, '美国']

:  可以看到 append 添加的元素只是在 列表尾部上添加的!!!!

 insert  :      可以在 列表的特定位置进行添加元素 ,它是 下标 加 元素

示例  :

 u1.insert(3,'巴铁')
print( u1 )
['巴西', '中国', '俄罗斯', '巴铁', '印度', 888, 777, '美国']

  :      可以看到 在列表的 第四个位置 添加了   '  巴铁 '  字样

要是 添加的位置 是不存在的 比如 : 1000 则和 append 一样在尾部

clear :       清空列表   ( 它没有元素 )

 u1.clear()
print ( u1 )
[]

:   可以看到 u1 里在没有元素!!被清空了

remove  :    通过元素本身删除 元素

示例  :

 u2 = list([ '宏旗','宝马','奔驰','奥迪',744,580] )
print(u2)
['宏旗', '宝马', '奔驰', '奥迪', 744, 580]u2.remove('宏旗')
print(u2)
['宝马', '奔驰', '奥迪', 744, 580]

:  remove 是删除元素中的第一个值 : 什么叫第一个值,就是倘若列表里都

是相同的元素,那么使用 remove 删除元素本身其结果是怎样的呢??

所以 remove 删除元素是删除元素中的第一个元素 (倘若列表里有相同的

元素)  请看下面示例 :

u3=list(['aaa','aaa',78,'五环'] )u3.remove('aaa')
print(u3)
['aaa', 78, '五环']

显然 当列表里有相同的元素 'aaa' 时,remove 删除的就是第一个 'aaa'

pop  :    可以通过元素位置(下标),去删除元素,默认删除最后一个元素(在

没有指定元素位置的情况下)

pop 删除元素后还会返回出 元素

示例  :

print( u2 )
['宏旗', '宝马', '奔驰', '奥迪', 744, 580]
u2.pop()
580
print( u2 )
['宝马', '奔驰', '奥迪', '744']
u2.pop(3)
744

:    可以看到在没有指定位置的时候,pop删除的是列表最后的元素,并且 pop

确实会 把删除的元素再返回出来!!!

count  :    统计该元素在列表里出现了几次 括号里是元素 , count ( 元素 )

示例 :

 u2
['宝马', '奔驰', '奥迪', '744', '特朗普', '特朗普', '特朗普', '特朗普', '特朗普']
u2.count('特朗普')
5

 注 :  count 统计出 列表里的  '特朗普' 有 5 个 !!

index   :    index ( 元素 )  获取元素在列表中的第一次出现的位置  (下标) !!

示例  :

u2
['宝马', '奔驰', '奥迪', '744', '特朗普', '特朗普', '特朗普', '特朗普', '特朗普']
u2.index('奥迪')
2

 reverse  :      翻转列表, 把列表里的元素 倒过来!!

示例 :

u2
['宝马', '奔驰', '奥迪', '744', '特朗普', '特朗普', '特朗普', '特朗普', '特朗普']u2.reverse()
u2
['特朗普', '特朗普', '特朗普', '特朗普', '特朗普', '744', '奥迪', '奔驰', '宝马']

    sort   :       排序列表中的元素, 但有要求 : 就是列表中的元素必须得是一个数

据类型, 数据类型倘若不一致,则使用 sort 会报错!!!

示例 :

u4 = list( [ '巴顿','将军',7788,456])
u4.sort()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

  :  显然 报错!!(u4 列表里的元素数据类型不一致必然报错)

示例   :

 u4
[7788, 456, 458, 666]
u4.sort()
u4
[456, 458, 666, 7788]

  :   显然,当 u4 列表里全是 同一个 数据类型时,它排序成功(以升序排序)

当然,你可能会问,那如果都是字符串类型,还能排序嘛??

u5 = list(['是','谁说','大锅'])
u5.sort()
u5
['大锅', '是', '谁说']

答案是可以的 !!!( 猜测 应该是靠着 ASSCAL 码去排序的)

不过也没人对 字符串进行 排序吧!!!!!

注 :  关于 sort ()  还有一个点就是 : 它其实也是可以带参数的 但是仅限 两个固定参数

如下 : sort( reverse=False )   ----->   这是默认的 sort  里面带的参数(升序的意思)

你还可以进行修改 : 当你使用的时候可以 改为 : sort( reverse = True )

但是,修改完后 sort 则是 降序的排序!!

示例 :

u4
[456, 458, 666, 7788]
u4.sort(reverse = True )
u4
[7788, 666, 458, 456]

修改 sort 的参数 再使用就是 降序排序 !!!!!

 extend  :   继承 , 它是多个列表的合并 !!!

示例  :

u5
['大锅', '是', '谁说']
u4
[7788, 666, 458, 456]
u4.extend(u5)
u4
[7788, 666, 458, 456, '大锅', '是', '谁说']

可以看到  extend 就是把 两个列表 合并起来!!! ,u4  把 u5 继承了起来!!

             copy  :      复制    它是对值的拷贝 !! 它是一个 浅拷贝对象

首先: 需要清楚一点是 : 复制引用传递 是两个完全的不同的概念 !!

示例

 u2
['特朗普', '特朗普', '特朗普', '特朗普', '特朗普', '744', '奥迪', '奔驰', '宝马']
u4
['大锅', '是', '谁说']
u2=u4
u2
['大锅', '是', '谁说']
u4
['大锅', '是', '谁说']

  注 :  上示就可以看到 ,在没有做出变化之前(没有让 u2=u4),u2 和 u4 各是各

的值,但是 : 当 u2=u4 之后,会发现,u2 的值发生了变化,全部变为 u4 的

值,就是 和 u4 的值一模一样 !!!!

解释 : (在这里不充分打开讲)

u2=u4  这个就叫 “ 引用传递 ”  并不叫   “ 复制 ”

那为什么 u2=u4 ,然后 u2 的值就成了 u4 呢??

因为这是相当于 u4 直接把 它的地址 赋给了 u2 ,也就是说,u2 和

u4,现在是同一个 地址(都是 u4 的地址)既然是同一个地址就说明

地址所对应的值(就是地址在内存中所存放的值)是一样的!!!

因为你是同一个地址嘛,所以,u2 和 u4 最后都是同一个值。

再说白了, " 引用传递 "  的 “ 引用 ” 就是  地址引用,就是把地址传

递给了别人,就是  u4 把自己的地址 传给了 u2 使得它俩现在是相

同的地址 。

那么,是相同的地址到底意味着什么呢???

当 u4 把地址 引用传递给了  u2 后意味着当 一者发生变化时,另一

者必然发生变化,即 : 当给 u4 发生变化的时候,u2 的值也会发生

变化  。

示例  :

u2=u4
u2
['大锅', '是', '谁说']
u4
['大锅', '是', '谁说']
u4.append('fuN')
u4
['大锅', '是', '谁说', 'fuN']
u2
['大锅', '是', '谁说', 'fuN']

:    可以看到,当给 u4 添加一个 值 ('fuN') ,相应的, u2 列表里的值同样也产

生了一个 'fuN' 值

再看如果对 u2 发生变化 u4 会不会随之改变呢??

u2
['大锅', '是', '谁说', 'fuN']
u2.remove('是')
u2
['大锅', '谁说', 'fuN']
u4
['大锅', '谁说', 'fuN']

:   可以看见,当我们对 u2 删除了 ' 是 ' 这个元素后 ,u4 也相应的删除了 ' 是 '

:  以上就是我们要说的 单单对于   “  引用传递  ”  的解释

它是对  “ 地址 ”  的拷贝

而我们要讲的 copy  是哪种拷贝呢 ??

在开始的时候,我们就说了 它是对 “ 值 ” 的拷贝!!!(也叫作 对象 的拷贝)

就是把 对象拷贝了一份,它会获取一模一样的值(对象),但是它们的 地址却依旧

不一样,也就是说 : 它们不存在 一个改变继而影响另一个 !!!

示例

u5=u4.copy()
u5
['大锅', '谁说', 'fuN']
u4.append('增加了吗?')
u4
['大锅', '谁说', 'fuN', '增加了吗?']
u2
['大锅', '谁说', 'fuN', '增加了吗?']
u5
['大锅', '谁说', 'fuN']

:  可以看到 ,我们对 u5 进行 复制 u4 ,查看 u5 其值 和 u4 也是一模一样,

因为 u5 把 u4 的值 复制了过来呀!!!

但是,当我们对 u4 进行变化的时候(添加元素),会发现,u4,u2 都增加

了相应的值,但是回过头来再查看 u5 它的值并没有发生改变!!

这就充分说明了 :  u5 的 copy 复制 只是对 值 的复制,并没有对 地址复

制!!!!

上示 : 就是  引用传递 和 复制 的区别!!也是 copy 的用法 !!!

#   copy()   括号里是不能带 元素的 !!!

Python 的内置容器之 list (列表) 详细指南!!相关推荐

  1. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  2. python中求包含5的数_Python 内置函数 ( ) 可以返回列表、元组、字典、集合、字符串以及 range 对象中元素个数。_学小易找答案...

    [简答题]实例1:求两数相除的结果. 先后输入2个数据,计算第一个数除以第二个数的结果. 要求能够处理输入数据为非数字.除数为零.文件末尾EndOfFile 和用户使用Ctrl + C 命令终止程序等 ...

  3. Python内置函数sorted()和列表方法sort()的排序原理

    问题描述:在Python中,可以使用内置函数sorted()和列表方法sort()对数据进行排序,但要求所有数据支持关系运算符,也就是这些数据本身是可以比较大小的才能进行排序,除非使用key参数明确指 ...

  4. Python内置函数sorted()和列表方法sort()排序规则不得不说的事

    Python内置函数sorted()和列表方法sort()可以使用key参数指定排序规则,并且都是稳定排序,也就是说,对于指定规则不能涵盖的元素,本来谁在前面,排好以后谁还是在前面. 直接用代码说话: ...

  5. 以下哪个不是python的内置函数_以下哪个 Python 内置函数可以返回列表对象中元素个数。...

    [多选题]假设 x=[0,1,2,3],执行哪些语句之后,x 的值为[0, 1, 2]. [多选题]以下哪些对象的分隔符为逗号. [单选题]已知列表 x=[0,1,2,1,4],那么执行语句 del ...

  6. python常用内置函数总结-Python 常用内置函数

    Python 常用内置函数如下: 1. abs()函数返回数字的绝对值. print( abs(-45) )# 返回45print("abs(0.2):",abs(0.2))#返回 ...

  7. python字符串内置方法

    网上已经有很多,自己操作一遍,加深印象. dir dir会返回一个内置方法与属性列表,用字符串'a,b,cdefg'测试一下 dir('a,b,cdefg') 得到一个列表 ['__add__','_ ...

  8. Python模块内置函数

    一.任务描述   本实验任务主要完成对Python模块内置函数进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python模块内置函数,并对Python内置函数的基本操作进行整理并填写工作任务报 ...

  9. python print()内置函数

    啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...

最新文章

  1. 用双注意力模块来做语义分割
  2. 迪士尼又出黑科技,可将自然语言脚本转化为VR视频
  3. leetcode笔记:Gray Code(2016腾讯软件开发笔试题)
  4. html网页语言是什么,HTML是什么?
  5. 编程语言与思维:科技公司如何自我重构?
  6. boost::polygon::detail::robust_fpt相关的测试程序
  7. 在windows上编译apr等相关动态库
  8. 计算机存储技术及应用,计算机数据安全存储技术及应用
  9. 关于在 matlab 中使用 ode45 算出拉格朗日方程中的关节加速度
  10. 吃掉那只青蛙_每日可交付成果–吃青蛙的艺术
  11. oauth2 单点登录_六个高Star开源项目,让你更懂OAuth和单点登录
  12. echarts在(React,Vue)中的使用总结
  13. 冷高轮时间王思聪吃热狗电脑屏幕保护下载
  14. Mysql出现Table 'performance_schema.session_status' doesn't exist
  15. 阿里巴巴国际站新店铺3个月的成果
  16. 玩拍七不再怕,判断7的倍数有妙招
  17. kpi绩效考核流程图_松松客服KPI绩效考核表经验分享
  18. 百度oCPC一键联调激活教程?api怎么对接?
  19. 基于 HTML5 WebGL 的高炉炉体三维热力图监控,展示“智慧工厂”十八般武艺
  20. 电脑网页打开巨慢但是网络正常

热门文章

  1. 计算机网络基础实验,计算机网络基础实验报告
  2. 水仙花c语言代码3位数,3位数水仙花数C语言的问题
  3. FIDO(身份认证标准):UAF(终端认证+私钥加签)/U2F
  4. 简析LGSVL自动驾驶仿真系统
  5. 手把手教你达梦数据库:备份与还原详细步骤
  6. 一种基于SparkSQL的Hive数据仓库拉链表缓慢变化维(SCD2+SCD1)的示例实现
  7. D-bus 介绍(一)
  8. 1分钟制作反映情绪的定制型沐浴膏,爱茉莉太平洋再获CES创新奖
  9. 时间序列分析实验报告总结_时间序列分析实验报告.doc
  10. JavaScript常用的Hook脚本