Python 数据类型 list(1)
定义
在python中,用方括号表示一个list,[ ]
在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。
>>> a=[] #定义了一个变量a,它是list类型,并且是空的。
>>> type(a)
<type 'list'> #用内置函数type()查看变量a的类型,为list
>>> bool(a) #用内置函数bool()看看list类型的变量a的布尔值,因为是空的,所以为False
False
>>> print a #打印list类型的变量a
[]
不能总玩空的,来点实的吧。
>>> a=['2',3,'hiekay.github.io']
>>> a
['2', 3, 'hiekay.github.io']
>>> type(a)
<type 'list'>
>>> bool(a)
True
>>> print a
['2', 3, 'hiekay.github.io']
用上述方法,定义一个list类型的变量和数据。
list索引
在list中,是以元素为单位,不是以字符为单位进行索引了。看例子就明白了。
>>> a
['2', 3, 'hiekay.github.io']
>>> a[0] #索引序号也是从0开始
'2'
>>> a[1]
3
>>> [2]
[2]
>>> a[:2] #跟str中的类似,切片的范围是:包含开始位置,到结束位置之前
['2', 3] #不包含结束位置
>>> a[1:]
[3, 'hiekay.github.io']
>>> a[-1] #负数编号从右边开始
'hiekay.github.io'
>>> a[-2]
3
>>> a[:]
['2', 3, 'hiekay.github.io']
对list的操作
追加元素
即将新的元素x追加到list的尾部。
>>> a = ["good","python","I"]
>>> a
['good', 'python', 'I']
>>> a.append("like") #向list中添加str类型"like"
>>> a
['good', 'python', 'I', 'like']
>>> a.append(100) #向list中添加int类型100
>>> a
['good', 'python', 'I', 'like', 100]
list.append(x)等效于:a[len(a):]=[x]
>>> a
['good', 'python', 'I', 'like', 100]
>>> a[len(a):]=[3] #len(a),即得到list的长度,这个长度是指list中的元素个数。
>>> a
['good', 'python', 'I', 'like', 100, 3]
>>> len(a)
6
>>> a[6:]=['xxoo']
>>> a
['good', 'python', 'I', 'like', 100, 3, 'xxoo']
list的长度
len(),这个是用来获取list,str等类型的数据长度的
len(x),对于list一样适用
得到的是list中元素个数
返回值是int类型
>>> name = 'yeashape'
>>> len(name) #str的长度,是字符的个数
8
>>> a=[1,2,'a','b'] #list的长度,是元素的个数
>>> len(a)
4
>>> b=['yeashape']
>>> len(b)
1
合并list
list.extend(L)
la[len(la):]=lb
>>> la = [1, 2, 3]
[1, 2, 3]
>>> lb = ['hiekay', 'python']
['hiekay', 'python']
>>> la.extend(lb)
>>> la
[1, 2, 3, 'hiekay', 'python']
>>> lb
['hiekay', 'python']
上面的例子,显示了如何将两个list,一个是la,另外一个lb,将lb追加到la的后面,也就是把lb中的所有元素加入到la中,即让la扩容。
实验:
>>> la = [1,2,3]
>>> b = "abc"
>>> la.extend(b)
>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> c = 5
>>> la.extend(c)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
从上面的实验中,extend的对象是一个list,如果extend(str)的时候,则python会先把它按照字符为单位转化为list再追加到已知list。
如果extend的对象是数值型,则报错.
- la[len(la):]=lb
>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> lb
['hiekay', 'python']
>>> la[len(la):]=lb
>>> la
[1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python']
list.extend(L) 等效于 list[len(list):] = L,L是待并入的list
一个list函数list.append(),这里的extend函数也是将另外的元素(只不过这个元素是列表)增加到一个已知列表中,那么两者有什么不一样呢?看下面例子:
>>> lst = [1,2,3]
>>> lst.append(["hiekay","github"])
>>> lst
[1, 2, 3, ['hiekay', 'github']] #append的结果
>>> len(lst)
4
>>> lst2 = [1,2,3]
>>> lst2.extend(["hiekay","github"])
>>> lst2
[1, 2, 3, 'hiekay', 'github'] #extend的结果
>>> len(lst2)
5
append是整建制地追加,extend是个体化扩编。
list中某元素的个数
list.count(x)
上面的len(L),可得到list的长度,也就是list中有多少个元素。python的list还有一个操作,就是数一数某个元素在该list中出现多少次,也就是某个元素有多少个。
>>> la = [1,2,1,1,3]
>>> la.count(1)
3
>>> la.append('a')
>>> la.append('a')
>>> la
[1, 2, 1, 1, 3, 'a', 'a']
>>> la.count('a')
2
>>> la.count(2)
1
>>> la.count(5) #NOTE:la中没有5,但是如果用这种方法找,不报错,返回的是数字0
0
元素在list中的位置
L.index(x)
可以将list中的元素,从左向右依次从0开始编号,建立索引(如果从右向左,就从-1开始依次编号),通过索引能够提取出某个元素,或者某几个元素。就是如这样做:
>>> la
[1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python']
>>> la[2]
3
>>> la[2:5]
[3, 'a', 'b']
>>> la[:7]
[1, 2, 3, 'a', 'b', 'c', 'hiekay']
如果考虑反过来的情况,能不能通过某个元素,找到它在list中的编号呢?
>>> la
[1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python']
>>> la.index(3)
2
>>> la.index('a')
3
>>> la.index(1)
0
>>> la.index('qi') #如果不存在,就报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'qi' is not in list
>>> la.index('hiekay')
6
list.index(x),x是list中的一个元素,这样就能够检索到该元素在list中的位置了。这才是真正的索引,注意那个英文单词index。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Github Repository 可视化 (D3.js & Three.js)
Github Repository 可视化 (D3.js & Three.js) 先上 Demo 链接 & 效果图demo 链接github 链接 效果图 2D: 效果图 3D: 为什么要做这样一个网站? 最初想法是因为 github 提供的页面无法一次看到用户的所有 repository, 也无法直观的看到每个 repository 的量级对比(如 commit 数, star 数), 所以希望做一个能直观展示用户所有 repository 的网站. 实现的功能有哪些? 用户 Github Repository 数据的2D和3D展示, 点击用户 github 关注用户的头像, 可以查看他人的 Github Repository 展示效果. 2D 和 3D 版本均支持: 展示用户的 Repository 可视化效果 点击 following people 的头像查看他人的 Repository 可视化效果 其中 2D 视图支持页面缩放和拖拽 && 单个 Repository 的缩放和拖拽, 3D 视图仅支持页面的缩放和拖拽. 用到了哪些技术? 数据来源为...
-
下一篇
fast.ai 深度学习笔记:第一部分第一课
原文:Deep Learning 2: Part 1 Lesson 1 作者:Hiromi Suenaga 课程论坛 入门 [0:00]: 为了训练神经网络,你肯定需要图形处理单元(GPU) - 特别是 NVIDIA GPU,因为它是唯一支持 CUDA(几乎所有深度学习库和从业者都使用的语言和框架)的设备。 租用 GPU 有几种方法:Crestle [04:06] ,Paperspace [06:10] Jupyter 笔记本和猫狗识别的介绍[12:39] 你可以通过选择它并按下shift+enter来运行单元格(你可以按住shift并多次按enter键来继续下拉单元格),或者你可以单击顶部的“运行”按钮。单元格可以包含代码,文本,图片,视频等。 Fast.ai 需要 Python 3 %reload_ext autoreload %autoreload 2 %matplotlib inline # This file contains all the main external libs we'll use from fastai.imports import * from fast...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能