一、列表

  1.定义与访问元素(按索引)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = ["a","b","c",1,2,3]
list_b = []
print(type(list_a),type(list_b)) #<class 'list'> <class 'list'>
print(list_a[0]) #a
print(list_a[1]) #b
print(list_a[-1]) #3
#print(list_b[0]) #空列表,这样会报错,IndexError: list index out of range

  2.切片(分片)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = ["a","b","c",1,2,3]
print(list_a[1:3]) #取索引为第一和第二的元素:['b', 'c']
print(list_a[-3:-1]) #负数表明从右开始计数,取索引为倒数第三和倒数第二的元素:[1, 2]
print(list_a[-3:]) #取最后三个元素 :[1, 2, 3]
print(list_a[0:]) #从第一个元素开始输出,输出全部结果:['a', 'b', 'c', 1, 2, 3]
print(list_a[:3]) #取前三个元素,等同于 print(list_a[0:3]):['a', 'b', 'c']

  第一个索引的元素包含在分片内,第二个索引的元素不包含在分片内。像数学里的a<=x<b ,x是我们需要得到的元素,a是分片操作中的第一个索引,b是第二个索引,b不包含在x的范围内。

  3.增加元素

  语法:list.append(obj),追加到后面。任意指定位置用insert(index,obj)方法,一次只能插入一个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = ["a","b","c",1,2,3]
list_a.append("python")
print(list_a) #追加到后面 :['a', 'b', 'c', 1, 2, 3, 'python']
list_a.insert(2,"NBA") #表示把"NBA"插入到下标为2的位置,即第3个位
print(list_a) #['a', 'b', 'NBA', 'c', 1, 2, 3, 'python']

  

  4.修改元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = ["a","b","c",1,2,3]
list_a[2] = "about" #直接修改
print(list_a) # ['a', 'b', 'about', 1, 2, 3]

  

  5.删除元素

    5.1   list.remove(obj)

    5.2   del list[x]

    5.3   list.pop(x) = del list[x],如果不输入下标, list.pop() ,默认删除最后一个

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = [2,3,4,5,-1,0,1,2,3]
list_a.remove(2) #此参数不是下标,是元素,有重复元素时,删掉第一个 :[3, 4, 5, -1, 0, 1, 2, 3]
del list_a[-1] #-1代表最后一个元素 :[3, 4, 5, -1, 0, 1, 2]
list_a.pop(3) #删掉第三个元素 :[3, 4, 5, 0, 1, 2]
list_a.pop() #删掉最后一个元素 :[3, 4, 5, 0, 1]
print(list_a)

  

  6.确定某个元素所在的位置

  list.index(obj),当元素重复时,返回第一个位置

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
list_a = [2,3,4,5,-1,0,1,2,3]
print(list_a.index(3)) #返回元素为3的位置,如有重复元素,则返回第一个的位置:1
print(list_a[list_a.index(3)]) #索引 :3

  

  7.copy

    7.1   浅copy

      7.1.1   用copy模块中的copy方法

      7.1.2   用切片的方式

 #!/usr/bin/env python
# -*- coding:utf- -*-
# Author:Hiuhung Wan
import copy
person =["name",["saving",]]
p2 = person[:]
print(p2)

      7.1.3   用列表自带的copy()方法

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import copy
person =["name",["saving",100]]
p3 = person.copy()
print(p3)

      7.1.4   list()方法

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import copy
person =["name",["saving",100]]
p4 = list(person)
print(p4)

    7.2   深copy

  copy.deepcopy(list)

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import copy
person =["name",["saving",100]]
p5 =copy.deepcopy(person)
person[0] = "Wenxh"
person[1][0] = "salary"
print(person)
print(p5)

  8.其他常用方法

    8.1   list.count(ojb),统计元素出现的次数

    8.2   list.clear(),清除列表,列表就没有了

    8.3   list.reverse(),列表元素反转

    8.4   list.sort(),排序(特殊符号<数字<大写<小写,按ASCII排序)

    8.5   list.extend(list2),追加,合并

 #!/usr/bin/env python
# -*- coding:utf- -*-
# Author:Hiuhung Wan
list_a = ["pen","pencil","book","watch","book","coat"]
list_b = ["0car","Ahouse","umbrella","#tichet","shirt"]
print(list_a.count("book")) #统计元素出现的次数 :
#list_a.clear() #清除列表,列表就没有了(空) :[]
print(list_a)
list_a.reverse() #列表元素反转
print(list_a) #['coat', 'book', 'watch', 'book', 'pencil', 'pen']
list_b.sort() #排序(特殊符号<数字<大写<小写,按ASCII排序)
print(list_b) #['#tichet', '0car', 'Ahouse', 'shirt', 'umbrella']
list_a.extend(list_b) #合并,此时list_a的值已发生改变
print(list_a) #['coat', 'book', 'watch', 'book', 'pencil', 'pen', '#tichet', '0car', 'Ahouse', 'shirt', 'umbrella']

二、元组

  也叫只读列表,一旦创建,便不能更改

  1.语法:

tuple = ('ZhangBinbin','MaAiping','TuHui')

  

  2.方法:只有两个,一个是count,一个是index。

最新文章

  1. shell 脚本随机抽取班级学生
  2. (转载)(收藏)OceanBase深度解析
  3. JAVA初学(1):值类型和引用类型的区别
  4. 关于jQuery中环境配置中的问题
  5. Java Runtime Data Area
  6. Convention插件的使用(会涉及content目录,jsp必须放入这个下面才能映射成功基于注解的配置)
  7. Counting Islands II
  8. js生成唯一的id
  9. 华为QOS原理及配置
  10. 【ARM】AD转换器
  11. java 读取execl文件
  12. pentestbox使用教程
  13. C#将String传入C++的char*
  14. scope 作用域(bean 的生存范围)
  15. Liberty中应用的contextroot
  16. .NET Core on Raspberry Pi
  17. Introduction to Mathematical Thinking - Week 3
  18. 【Head First Servlets and JSP】笔记14:session再探 &amp; Listener示例
  19. php 顺序线性表
  20. c++中vector向量几种情况的总结(向量指针,指针的向量)

热门文章

  1. 洛谷 P2690 接苹果
  2. PMP杂谈--制约因素与如果条件
  3. C++ 不输入回车就不结束输入的实现方法
  4. Android学习笔记进阶18 之画图并保存图片到本地
  5. 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
  6. HttpWebRequest使用证书请求
  7. 多重背包模板 51Nod 1086
  8. 【Django】信号调度
  9. C++遍历目录+_finddata_t结构体用法
  10. Install Docker Mac OS X