Python 数据类型 list(1)

简介: 定义在python中,用方括号表示一个list,[ ]在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。

定义

在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。

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2天前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
14天前
|
存储 JSON 运维
第三章 Python丰富的数据类型
第三章 Python丰富的数据类型
|
14天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
|
14天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
15天前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
20 0
|
15天前
|
存储 Python
Python的变量与数据类型详解
Python的变量与数据类型详解
11 0
|
22天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
22天前
|
Python
02-python的基础语法-01python字面量/注释/数据类型/数据类型转换
02-python的基础语法-01python字面量/注释/数据类型/数据类型转换
|
23天前
|
Java 程序员 Python
Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
【4月更文挑战第15天】Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
27 11
|
26天前
|
Python
python教程:二维列表(list)初始化
python教程:二维列表(list)初始化
9 0