Python数据类型详解——列表

在“Python之基本数据类型概览”一节中,大概介绍了列表的基本用法,本节我们详细学一下列表。

如何定义列表:在[]内以英文里输入法的逗号,,按照索引,存放各种数据类型,每个位置代表一个元素。

回顾一下列表的特点

1、可存放多个值。

2、按照从左到右的顺序定义列表元素,下标从0开始顺序访问,是有序的。

3、可修改指定索引位置对应的值,可变。

一、列表元素的增加操作

1、追加

append方法将数据追加到列表的尾部

names = ['Kwan', 'Kobe']
names.append('KK')
names.append('LL')
print(names)

2、插入

insert方法,可将数据插入任何位置

names = ['Kwan', 'Kobe', 'KK', 'LL']
names.insert(2, '小明')
print(names)

3、合并

extend方法,可以把另外一个列表的值合并进来

names = ['Kwan', 'Kobe', 'KK']
n = ['小明', '小红']
names.extend(n)
print(names)

4、列表嵌套

names = ['Kwan', 'Kobe', 'KK']
names.insert(2, ['李白', 'sh'])
print(names)
print(names[2][1])

二、删除操作

1、del 直接删除

names = ['Kwan', 'Kobe', 'KK']
del names[1]
print(names)

2、pop

names = ['Kwan', 'Kobe', 'KK', 'LL']
names.pop() # 括号里不加参数,默认删除最后一个元素并返回被删除的值
names.pop(1) # 删除指定索引的元素
print(names)

3、clear 清空

names = ['Kwan', 'Kobe', 'KK']
names.clear()
print(names)

三、修改操作

直接重新赋值即可

names = ['Kwan', 'Kobe', 'KK', "LL"]
names[1] = 'James'
names[3] = '小明'
print(names)

四、查找操作

index()方法用来查找对应元素的索引,count()方法用来计算指定元素的个数

names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL']
print(names.index('KK'))
print(names.count('Kwan'))

五、切片

切片就像切面包,可以同时取出元素的多个值。

语法:name[start : end]

names = ['Kwan', 'Kobe', 'KK', 'LL', '小明']
print(names[1:3]) # 不会包含索引为3的元素'LL'

注:切片的特性是顾头不顾尾,即start对应索引的元素会被包含进去,但是尾部只会包含到end-1

1、倒着切片

names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL']
print(names[-4:-1])

因为顾头不顾尾的特性,此时并未将最后一个打印出来,如果想把最后一个也包含进来该怎么做呢?

names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL']
print(names[-4:]) # 要取到最后一个,直接不写左边的参数即可

同理,要取到第一个值:

names = ['Kwan', 'Kobe', 'KK', '小明', 'Kwan','LL']
print(names[:4]) # 也可写成names[0:4]

2、步长

通过设置步长,可以实现间隔取值

语法:names[start : end : step]

num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[0:7:2]) # 打印索引为0的元素到索引为6的元素,步长为2
print(num[::3]) # 打印全部元素,步长为3

3、列表反转

通过把步长设置成负值,可达到列表反转的效果

num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[::-1])
print(num[::-2])

六、排序、反转

1、排序

a = [34, 43, 65, 23, 12, 5]
a.sort()
print(a)

但是下面的排序结果该如何解释呢?

names = ['Kwan', 'Kobe', 'KK', '@', '小明']
names.sort()
print(names)

答案全在下面这张表上:

2、反转

使用reverse()方法

names = ['Kwan', 'Kobe', 'KK', '@', '小明']
names.reverse()
print(names)

七、列表循环

names = ['Kwan', 'Kobe', 'KK', '@', '小明']
for i in names: # 也可以不用i,只要符合变量名规则都可以
print(i)

Python数据类型详解——列表的更多相关文章

  1. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  2. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  3. 转 python数据类型详解

    python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...

  4. Python数据类型详解——元组

    Python数据类型详解--元组 有时候我们的列表数据不想被别人修改时该怎么办? 此时,就可以使用元组来存放,元祖又称为只读列表,不能修改 定义方式:与列表类似,将列表的[]换成()即可. 特性: 1 ...

  5. Python数据类型详解——字典

    Python数据类型详解--字典 引子 已经学习了列表,现在有个需求--把公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Kwan", ...

  6. python数据类型详解及列表字典集合推导式详解

    一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...

  7. python数据类型详解

    目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字符串,例如:str='th ...

  8. python 数据类型详解(转)

    转自:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1. ...

  9. 1.python数据类型详解

    python数据类型分类 1).数值型:整数型(int).浮点型(float).布尔型(bool 取值:True.False) 2).容器类型 : 字符串型(str).列表(list).元祖(tupl ...

随机推荐

  1. 带新手玩转MVC——不讲道理就是干(下)

    带新手玩转MVC——不讲道理就是干(下) 前言:废话不多说,直接开干 完整案例演示 案例代码 LoginServlet package servlet; import domain.User; imp ...

  2. lr录制选项设置代理

    解决录制时浏览器打不开录制时录不到脚本等浏览器兼容问题一.lr录制选项设置代理1.点击Options 2.点击Port Mapping→Newentrv 3.lr代理设置 ·Socket Servic ...

  3. 比特币and区块链

    比特币简介 比特币(Bitcoin:比特金)最早是一种网络虚拟货币,可以购买现实生活当中的物品.它的特点是分散化.匿名.只能在数字世界使用,不属于任何国家和金融机构,并且不受地域的限制,可以在世界上的 ...

  4. python中if __name__ == '__main__' :main(()

    例如: if __name__ == '__main__': main() 如果运行的是主函数的话,执行下一句main() 如果作为模块被其他文件导入使用的话,我们就不执行后面的main()什么的. ...

  5. Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)

    年薪20万的梦想...         python对文件.目录能做什么?或者说我们需要python替我们做什么?最经常的操作就是对文件的:打开.关闭.读取.写入.修改.保存等等对目录的操作,无非就是 ...

  6. 从三个语言(C++,Java,.Net)的几个性能测试案例来看性能优化

    随着时间的发展,现在的虚拟机技术越来越成熟了,在有些情况下,Java,.Net等虚拟机密集计算的性能已经和C++相仿,在个别情况下,甚至还要更加优秀.本文详细分析几个性能测试案例,探讨现象背后的原因. ...

  7. 【Java】判断字符串是否含字母

    用正则表达式,示例代码如下: String str = "123abc"; Pattern.compile("(?i)[a-z]]").matcher(str) ...

  8. 新IT运维时代 | Docker运维之最佳实践-下篇

    上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...

  9. gradle脚本源码查看环境搭建

    背景 我刚入门学习gradle时,网上资料都是说通过gradle的api查看并学习脚本编写,但是api一般只有接口说明,并不能深入了解各个api的实现逻辑,有时就会对一些脚本的写法感到疑惑.通过搭建源 ...

  10. 【故障公告】发布 .NET Core 版博客站点引起大量 500 错误

    非常抱歉,今天上午的博客站点故障给大家带来了很大的麻烦,请大家谅解.这次故障是我们发布 .NET Core 版博客站点引起的,虽然我们进行了充分的准备,但还是低估了高并发下的复杂问题. 以下是故障背景 ...