python提供了一个被称为列表的数据类型,他可以存储一个有序的元素集合。

记住:一个列表可以存储任意大小的数据集合。列表是可变对象,有别于字符串str类,str类是不可变对象。

1.创建一个列表

list1 = list() #创建一个空列表
list2 = list([2,3,4]) #创建列表,包含元素2,3,4
list3 = list(["red","green"]) #创建字符串列表
list4 = list(range(3,6))
list5 = list("abcd")

我们用图说话:

2.list的常用操作

python中的字符串和列表都是序列类型。一个字符串是一个字符串序列,而一个列表是任何元素的序列。
序列(列表)s的常用操作
操作 描述
x  in  s 如果元素x在序列s中则返回true
x  not  in  s 如果元素x不在序列s中则返回true
s1  +  s2 连接两个序列s1和s2
s*n,   n*s n个序列s的连接
s[ i ] 序列s的第 i 个元素
s[ i, j ] 序列s从下标 i 到 j-1 的片段  (列表截取)
len(s) 序列s的长度,即s中的元素个数
min(s) 序列s的最小元素
max(s) 序列s的最大元素
sum(s) 序列s中所有元素之和
for loop 在for循环中从左到右反转元素
<,<=,>,>=,=,!= 比较两个序列,若真则返回true
random.shuffle(s) 随意排列序列s中的元素

有图看的更清楚点:

3.下标运算符 []

有列表mylist,则mylist[ index ] 中index为列表的下标,一般下标的范围是0到len(mylist)-1.   mylist[ index ]又称为下标变量。
mylist[0], mylist[1] ……分别访问列表第0个元素,第一个元素……
index还可以为负数:mylist[-1], mylist[-2]……分别访问列表倒数第一个元素,倒数第二个元素……(为负数时index最大为-1)
 

4.列表截取[start:end]

mylst[start:end] 截取范围是start到end-1,构成一个列表。
>>>mylst= [0,1,2,3,4,5]
>>>mylst[2,4]
[2, 3]
若start和end省略,则start默认为0,end默认为列表最后一个下标
start和end也可以为负数,若负数为-n则换成是-n+len(mylist)即可
>>>mylist[:3]
[0, 1, 2]
>>>mylist[2:]
[2, 3, 4, 5]
>>>mylist[:]
[0, 1, 2, 3, 4, 5]
>>>mylist[-4:-2]
[2, 3]
若start>end,则mylist返回一个空列表
>>>mylist[3:2] 
[]
 

5.列表解析

列表解析由多个方括号组成,方括号内包含后跟一个for子句的表达式,之后是0或多个for或if子句。例如:

>>>list1 = [x for x in range(5)]
>>>list1
[0, 1, 2, 3, 4]
>>>list2 = [0.5*x for x in list1]
>>>list2
[0.0, 0.5, 1.0, 1.5, 2.0]
>>>list3 = [x for x in list2 if x < 1.5]
>>>list3
[0.0, 0.5, 1.0]

6.列表方法

常用的list方法
append(x: object) :None 将元素添加到列表结尾
count(x: object): int 返回元素x在列表中出现的次数
extend(lst: list): None 将列表 l 中的所有元素追加到列表中
index(x: object): int 返回x在列表中第一次出现的下标
insert(index: int, x:object):None 将元素x插入列表中指定下标处
pop(i): object 删除给定位置的元素并返回它。参数 i 可选,若没有指定,则删除并返回列表中的最后一个元素
remove(x: object):
None
删除列表中第一次出现的x
reverse(): None 将列表中的所有元素倒序(不是排序)
sort(): None 将列表中的元素升序排序(注意:是排序)
以上代码如下:
>>> list1 = [2, 3, 4, 1, 32, 4]
>>> list1.append(19)
>>> list1
[2, 3, 4, 1, 32, 4, 19]
>>> list1.count(4)
2
>>> list2 = [99, 54]
>>> list2.extend(list1)
>>> list2
[99, 54, 2, 3, 4, 1, 32, 4, 19]
>>> list2.index(4)
4
>>> list2.insert(1, 25)
>>> list2
[99, 25, 54, 2, 3, 4, 1, 32, 4, 19]
>>> list2.pop() #删除最后一个位置的元素
19
>>> list2
[99, 25, 54, 2, 3, 4, 1, 32, 4]
>>> list2.pop(2) #删除指定位置的元素,这里删除下标为2的元素
54
>>> list2
[99, 25, 2, 3, 4, 1, 32, 4]
>>> list2.remove(4)
>>> list2
[99, 25, 2, 3, 1, 32, 4]
>>> list2.reverse() #将原序列倒过来
>>> list2
[4, 32, 1, 3, 2, 25, 99]
>>> list2.sort() #将原序列升序排序
>>> list2
[1, 2, 3, 4, 25, 32, 99]

最新文章

  1. Unity 特殊文件夹 : 位置不能随便放
  2. 谈谈对AOP的理解
  3. ubuntu下Tomcat7的安装和配置
  4. python3数据类型
  5. sqoop的job工具
  6. 对CAB文件进行数字签名
  7. LeetCode_Best Time to Buy and Sell Stock III
  8. Java Math的 floor,round和ceil的总结
  9. 如何灵活使用 ActionBar, Google 音乐ActionBar 隐藏和显示效果
  10. 封装使用ViewHolder模式的Adapter组件,及用其快速实现聊天界面
  11. 实时消息传输协议(RTMP)详解
  12. button的用法
  13. [LeetCode] Maximum Average Subarray II 子数组的最大平均值之二
  14. 3. Dubbo原理解析-Dubbo内核实现之动态编译 (转)
  15. android java.lang.NoClassDefFoundError: cn.yw.lib.viewpagerfragment.ViewPagerFragmentActivity
  16. Python 爬虫入门(四)—— 验证码上篇(主要讲述验证码验证流程,不含破解验证码)
  17. react native 中使用react-native-vector-icons
  18. 一些常用的mysql语句实例-以后照写
  19. Star Schema and Snowflake Schema
  20. 前端与后台服务交互--json处理的流程以及用到的工具代码

热门文章

  1. xtrabackup数据库备份
  2. 17.4.3 使用MulticastSocket实现多点广播(2)
  3. 转发:iOS之textfield用法大全
  4. Linux中后台执行任务
  5. 前端设计——js实现图片切换的淡入淡出
  6. sublime text 调出结果输出框
  7. S3C2440触摸屏驱动详解
  8. iOS动画特效 分类: ios技术 2015-05-15 16:29 311人阅读 评论(0) 收藏
  9. Makefile &mdash; 基础
  10. leetcode-位运算