“Python列表类型”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
列表的遍历
 
(未显示2个用户的5个中间版本)
第1行: 第1行:
 
==列表的定义==
 
==列表的定义==
列表是包含0个或多个元组组成的有序序列,属 于序列类型。列表可以元素进行增加、删除、替 换、查找等操作。列表没有长度限制,元素类型 可以不同,不需要预定义长度。  
+
 
 +
列表是包含0个或多个元组组成的有序序列,属 于序列类型。
 +
 
 +
列表可以元素进行增加、删除、替 换、查找等操作。
 +
 
 +
列表没有长度限制,元素类型 可以不同,不需要预定义长度。  
  
 
列表类型用中括号([])表示,也可以通过list(x) 函数将集合或字符串类型转换成列表类型
 
列表类型用中括号([])表示,也可以通过list(x) 函数将集合或字符串类型转换成列表类型
第43行: 第48行:
 
*[[文件:python6-2.png]]
 
*[[文件:python6-2.png]]
  
*可以使用遍历循环对列表类型进行遍历操作
 
 
<nowiki>>>> x = list('Python')
 
     
 
>>> for i in x:
 
      print(i)
 
  
     
 
P
 
y
 
t
 
h
 
o
 
n</nowiki>
 
 
===列表的切片===
 
===列表的切片===
 
切片是列表的基本操作,用于获得列表的一个片 段,即获得一个或多个元素。
 
切片是列表的基本操作,用于获得列表的一个片 段,即获得一个或多个元素。
第70行: 第62行:
  
  
  <nowiki>>>> ls = [1010,"1010",[1010,"1010"],1010]
+
  <nowiki>
 +
>>> d
 +
[1, 2, 3, 4, 5]
 +
>>> d[0]
 +
1
 +
>>> d[-1]
 +
5
 +
>>> d[1:4]
 +
[2, 3, 4]
 +
>>> d[1:3]
 +
[2, 3]
 +
>>> d[1:]
 +
[2, 3, 4, 5]
 +
>>> d[:3]
 +
[1, 2, 3]
 +
>>> d[-3:-1]
 +
[3, 4]
 +
>>> d[0:4]
 +
[1, 2, 3, 4]
 +
>>> d[0:4:2]
 +
[1, 3]
 +
</nowiki>
 +
 
 +
===列表的遍历===
 +
可以使用遍历循环对列表类型进行遍历操作
 +
 
 +
*按元素遍历:
 +
 
 +
<nowiki> for s in d:
 +
 
 +
print(s)</nowiki>
  
 +
 +
<nowiki>1
 +
2
 +
3
 +
4
 +
5</nowiki>
  
>>> ls[1:4]
+
*按索引遍历:
['1010', [1010, '1010'], 1010]
 
>>> ls[-1:-3]
 
[]
 
  
 +
<nowiki> for i in range(0,len(d)):
  
>>> ls[-3:-1]
+
print(d[i])</nowiki>
['1010', [1010, '1010']]
 
>>> ls[0:4:2]
 
[1010, [1010, '1010']]</nowiki>
 
  
 +
 +
<nowiki>1
 +
2
 +
3
 +
4
 +
5</nowiki>
  
 
==列表对象支持的运算符==
 
==列表对象支持的运算符==

2023年4月10日 (一) 00:39的最新版本

列表的定义

列表是包含0个或多个元组组成的有序序列,属 于序列类型。

列表可以元素进行增加、删除、替 换、查找等操作。

列表没有长度限制,元素类型 可以不同,不需要预定义长度。

列表类型用中括号([])表示,也可以通过list(x) 函数将集合或字符串类型转换成列表类型

基础操作

创建列表

  • 使用“=”直接将一个列表赋值给变量即可创建列表对象。
>>> a_list = []                       #创建空列表
>>> a_list = ['a', 'b', 'mpilgrim', 'z', 'example']


  • 也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表。
>>> list((3,5,7,9,11))                #将元组转换为列表
[3, 5, 7, 9, 11]
>>> list(range(1, 10, 2))             #将range对象转换为列表
[1, 3, 5, 7, 9]
>>> list('hello world')               #将字符串转换为列表
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list({3,7,5})                     #将集合转换为列表
[3, 5, 7]</nowiki>
  • 两个列表相加:
>>> ls =[1,2,3]

>>> lt =[4,5,6]

>>> ls = ls + lt
>>> print(ls)
[1, 2, 3, 4, 5, 6]

列表的索引

  • 创建列表之后,可以使用整数作为下标来访问其中的元素,其中0表示第1个元素,1表示第2个元素,2表示第3个元素,以此类推;列表还支持使用负整数作为下标,其中-1表示最后1个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。
>>> x = list('Python')             #创建类别对象
>>> x
['P', 'y', 't', 'h', 'o', 'n']
>>> x[0]                           #下标为0的元素,第一个元素
'P'
>>> x[-1]                          #下标为-1的元素,最后一个元素
'n'
  • Python6-2.png


列表的切片

切片是列表的基本操作,用于获得列表的一个片 段,即获得一个或多个元素。

切片后的结果也是 列表类型。

切片有两种使用方式:

  • <列表或列表变量>[N: M] :获取从N到M(不包含M)的元素组成新 的列表。
  • <列表或列表变量>[N: M: K] :获取从N到M(不包 含M)以K为步长所对应元素组成的列


>>> d
[1, 2, 3, 4, 5]
>>> d[0]
1
>>> d[-1]
5
>>> d[1:4]
[2, 3, 4]
>>> d[1:3]
[2, 3]
>>> d[1:]
[2, 3, 4, 5]
>>> d[:3]
[1, 2, 3]
>>> d[-3:-1]
[3, 4]
>>> d[0:4]
[1, 2, 3, 4]
>>> d[0:4:2]
[1, 3]

列表的遍历

可以使用遍历循环对列表类型进行遍历操作

  • 按元素遍历:
 for s in d:

	print(s)


1
2
3
4
5
  • 按索引遍历:
 for i in range(0,len(d)):

	print(d[i])


1
2
3
4
5

列表对象支持的运算符

加法运算符

  • 加法运算符+也可以实现列表增加元素的目的,但不属于原地操作,而是返回新列表,涉及大量元素的复制,效率非常低。使用复合赋值运算符+=实现列表追加元素时属于原地操作,与append()方法一样高效。
>>> x = [1, 2, 3]
>>> id(x)
53868168
>>> x = x + [4]                        #连接两个列表
>>> x
[1, 2, 3, 4]
>>> id(x)                              #内存地址发生改变
53875720
>>> x += [5]                           #为列表追加元素
>>> x
[1, 2, 3, 4, 5]
>>> id(x)                              #内存地址不变
53875720

乘法运算符

  • 乘法运算符*可以用于列表和整数相乘,表示序列重复,返回新列表。运算符*=也可以用于列表元素重复,属于原地操作。
>>> x = [1, 2, 3, 4]
>>> id(x)
54497224
>>> x = x * 2                           #元素重复,返回新列表
>>> x
[1, 2, 3, 4, 1, 2, 3, 4]
>>> id(x)                               #地址发生改变
54603912
>>> x *= 2                              #元素重复,原地进行
>>> x
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
>>> id(x)                               #地址不变

成员测试运算符in

  • 可用于测试列表中是否包含某个元素,查询时间随着列表长度的增加而线性增加,而同样的操作对于集合而言则是常数级的。
>>> 3 in [1, 2, 3]
True
>>> 3 in [1, 2, '3']
False