Python 学习日记第二篇 -- 列表,元组

简介:

一、列表

    列表是一个可以包含所以数据类型的对象的位置有序集合,它是可以改变的。

   1、列表的序列操作(Python3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> one_list = [1,2,3,4]
>>> two_list = [ "jonny" , "jery" , "david" ]
#统计元素数量
>>> len(one_list)
4
#索引,根据偏移量,左起从0开始,右起从-1开始
>>> one_list[0]
1
>>> one_list[-1]
4
#切片
>>> one_list[0:2]
[1, 2]
>>> one_list[:-1]
[1, 2, 3]
>>> one_list[1:]
[2, 3, 4]
#步进,默认为1
>>> one_list[::2]
[1, 3]
#扩展进来新的列表
>>> new_list = one_list + two_list
>>> print(new_list)
[1, 2, 3, 4,  'jonny' 'jery' 'david' ]

   

   2、列表的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#在列表中加入元素
>>> one_list.append( "join" )
>>> print(one_list)
[1, 2, 3, 4,  'join' ]
 
#查看元素在列表中的偏移量
>>> one_list.index( 'join' )
4
 
#统计元素在列表中出现的次数
>>> one_list = [1,2,3,4, "join" , "jonny" ,3,4,2,45,32, "gg" ,45]
>>> one_list.count(3)
2
 
#在列表中指定位置插入元素
>>> one_list.insert(1, "insert_ele" )
>>> print(one_list)
[1,  'insert_ele' , 2, 3, 4,  'join' 'jonny' , 3, 4, 2, 45, 32,  'gg' , 45]
 
#移除指定元素
>>> one_list.remove( "insert_ele" )
>>> print(one_list)
[1, 2, 3, 4,  'join' 'jonny' , 3, 4, 2, 45, 32,  'gg' , 45]
 
#通过附加来自可迭代的元素扩展列表(字符串,列表,元组等)
>>> one_list.extend( "extend" )
>>> print(one_list)
[1, 2, 3, 4,  'join' 'jonny' , 3, 4, 2, 45, 32,  'gg' , 45,  'e' 'x' 't' 'e' 'n' 'd' ]
 
#移除指定偏移量的元素,不指定则为随机移除
>>> one_list = [1,2,3,4]
>>> one_list.pop()
4
>>> one_list.pop(1)
2
>>> print(one_list)
[1, 3]
 
#根据ASCII码排序,python2.X系列可对所有元素排序,3.X系列只能对相同类型元素排序
Python3.6
>>> one_list = [3,6,2,8]
>>> one_list. sort ()
>>> print(one_list)
[2, 3, 6, 8]
Python2.7
>>> two_list = [3,6,4,7]
>>> two_list.extend( "djttdkx01" )
>>> print two_list
[3, 6, 4, 7,  'd' 'j' 't' 't' 'd' 'k' 'x' '0' '1' ]
>>> two_list. sort ()
>>> print two_list
[3, 4, 6, 7,  '0' '1' 'd' 'd' 'j' 'k' 't' 't' 'x' ]
 
#反转列表
>>> two_list.reverse()
>>> print two_list
[ 'x' 't' 't' 'k' 'j' 'd' 'd' '1' '0' , 7, 6, 4, 3]
 
#列表的复制方法一:复制第一级,对于嵌套的列表只是复制其引用位置
>>> one_list = [1,2,3,4,[5,6,7,8]]
>>> two_list = one_list[:]
>>> print(two_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>>  id (one_list)
5697352
>>>  id (two_list)
50197576
#列表复制方法二:复制第一级,对于嵌套的列表只是复制其引用位置
>>> three_list = one_list.copy()
>>> print(three_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>>  id (three_list)
49960008
#列表复制方法三:copy模块的深度复制
>>>  import  copy
>>> four_list = copy.deepcopy(one_list)
>>> print(four_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>> one_list[4][0] = 55
>>> print(two_list)
[1, 2, 3, 4, [55, 6, 7, 8]]
>>> print(three_list)
[1, 2, 3, 4, [55, 6, 7, 8]]
>>> print(four_list)
[1, 2, 3, 4, [5, 6, 7, 8]]


    3、列表的嵌套

1
2
3
4
5
>>> one_list = [2,3,1,7,[2, "gg" , "david" ],87,98]
>>> one_list[4][1][1]
'g'
>>> one_list[4][2]
'david'

    

    4、列表解析

1
2
3
4
5
6
7
8
>>> one_list = [[1,2,3],[4,5,6],[7,8,9]]
>>> new_list = [row[0]  for  row  in  one_list]
>>> print(new_list)
[1, 4, 7]
 
>>> two_list = [row[1] % 2  for  row  in  one_list]
>>> print(two_list)
[0, 1, 0]

   5、练习

1
2
3
4
5
6
7
8
9
10
11
12
13
'' '
练习:找列表中的9替换成9999
同时找出所有的34,全删掉
 
'' '
one_list = [ "jym" , "alex" ,9, "jonny" , "sun" ,3,6,7,8,2,3,1,9,34,543,43,32,34, "gg" , "jids" ]
print(one_list)
for  in  range(one_list.count(9)):
     one_list [one_list.index(9)] = 9999
for  in  range(one_list.count(34)):
     del one_list[one_list.index(34)]
 
print(one_list)

wKioL1ijNDKBMJpTAACNmLhvXlg809.png-wh_50



二、元组

   元组是不可改变的列表,编写在圆括号中,支持任意类型,任意嵌套等常见操作

   1、元组的序列操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> one_tuple = (1,2,3,4)
#统计元素个数
>>> len(one_tuple)
4
 
#元组附加
>>> two_tuple = one_tuple + (5,6)
>>> print(two_tuple)
(1, 2, 3, 4, 5, 6)
 
#索引
>>> one_tuple[0]
1
>>> one_tuple[-2]
3

   2、元组的方法

1
2
3
4
5
6
7
#查看元素在元组中的偏移量
>>> one_tuple.index(2)
1
 
#统计元素在元组中出现的次数
>>> one_tuple.count(2)
1

   3、元组的嵌套

    元组本身的元素是不可被修改的,但元组中嵌套的字典或列表的元素是可变的。

1
2
3
4
5
6
7
8
9
>>> t1 = (1,2,{ 'k1' : 'v1' })
>>> t1[2][ 'k1' ] =  'v2'
>>> print(t1)
(1, 2, { 'k1' 'v2' })
 
>>> t2 = (1,2,[1,2])
>>> t2[2][0] =  'new1'
>>> print(t2)
(1, 2, [ 'new1' , 2])

   


本文转自 元婴期 51CTO博客,原文链接:http://blog.51cto.com/jiayimeng/1897851


相关文章
|
4月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
325 1
|
4月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
460 1
|
4月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
560 1
|
4月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
482 116
|
4月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
426 109
|
4月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
493 119
|
4月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
4月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
212 1
|
4月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
230 4

推荐镜像

更多