[Python]学习基础篇:列表(List),元组的浅解

列表

首先先说明中python中数组下标的使用,在java,c或者c++中,每个数组的下标必须是正数,不能出现负数,如在java,c或者c++中使用a[-1],编辑器会报错,而在python中数组的访问时可以出现负数下标,表示倒数第几个元素。

  • list列表的定义
    Python中列表的定义比较简单,不需要想java中需要用List类创建的一个对象。在java中不同类型的对象是不能存放在同一个列表中,而Python中同一个list可以存放不同类型的数据,同时也可以存放一个obj。
    格式:list=[……..]
>>>list=['defrew','234','234','dew','2342',238492,'f']
>>>list
['defrew', '234', '234', 'dew', '2342', 238492, 'f']

列表的重复定义:
list=list * count

>>>list=['haha']
>>>list * 4
['haha', 'haha', 'haha', 'haha']

list=[1,3,44’234’]

  • 列表中元素的增加
函数/表达式 说明 举例
+ 向列表的末尾条件一个新的列表 >>>list=list+['a'] >>>list [1,3,44,'234','a']
addpend( x ) 向列表的末尾添加一个元素 >>>list.append(10) >>>list [1,3,44,'234','a',10]
extend( list ) 向列表的末尾添加一个list >>>list.extend([5,6]) >>>list [1,3, 44,'234','a',10,5,6]
insert( i , x ) 在i的位置添加元素x >>>list.insert(0,'x') >>>list ['x',1,3,44,'234','a',10,5,6]

list=[1,2,3,4,5,6]
- 列表的删除

函数 说明 举例
del 删除特定位置的元素 >>>del list[3] >>>list [1,2,3,5,6]
remove(x) 删除特定值得元素 >>>list.remove(3) >>>list [1,2,5,6]
pop([]) 弹出指定位置的元素,若参数i不存在时,弹出最后一个元素 >>>list.pop() 6 >>>list [1, 2, 5]

  • 列表的更新
    对于列表的更新,只需要将特定未知的元素进行从新复制,这样就可以实现更新
>>>list[i]=x

list=[1,2,3,4,5,6]
- 检查列表中元素是否存在

函数 说明 举例
count(str) 判断str元素出现的次数 >>>list.count(1) 1
value in list 使用in表达式检测元素是否存在,若存在返回True >>>4 in list True >>>7 in list False
index(str) 返回某个元素的准确位置,若元素不在列表中则出错 >>>list.index(3) 2 list.index(7) 7 is not in list

list=[1,2,3,4,5,6]
- 列表的迭代

>>> for key in d:
    print(key)

如何将列表的索引和值都打印出来呢?使用Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

>>>for key in enumerate(list)
        print key
    0  1
    1  2
    ....

list=[1,2,3,4,5,6]
- 列表的常用函数

函数 说明 举例
cmp(list1,list2) 比较两个列表的元素,先比较第一个元素,若第一个元素相同,则开始对比第二个元素,若不同不在比较。若两个列表相同,则返回0,若list1>list2,返回1,若list1
len(list) 返回列表的长度或者元素个数 >>>len(list) 6
max(list)/min(list) 返回列表中的最大值和最小值
sorted(list[,reverse=True]) 默认为升序排序,若第二个参数存在且值为True,则为降序排序
reversed(list) 逆序排序

  • 列表的切片
    对于列表而言找打某一个元素比较简单,使用list[i]就可以找到这个元素了,那对于找到某一范围内的元素,python的列表提供了切片的方法,可以找到某一个范围内的元素。
    格式:list[start: end]
    list=[1,2,3,4,5,6]
(1).取前3个元素,若从0开始取,则第一个参数可以省略
>>>list[0:3]
[1, 2, 3]
>>>list[:3]
[1, 2, 3]
(2).取14个元素
>>>list[1:4]
[2, 3, 4]
(3).取倒数第一个到倒数第三个
>>>list[-3:-1]
[4, 5]
(4).取最后两个
>>>list[-2:]
[5, 6]
(5).若想在列表中取前4个,每两个中去一个
>>>list[:4:2]
[1, 3]
(6).复制一个列表
>>>list1=list[:]
>>>list1
[1, 2, 3, 4, 5, 6]

元组

元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改。元组位置有序的对象集合,元组通过偏移来访问。

为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修改,元组类似于其他语言中的常数。

  • 元组的定义
    对于tuple的定义和list定义是一样的,不过tuple定义之后就不能修改值了。
>>>a=(1,2,3,4,5)

对于定义tuple只有一个元素的元组,对于以下定义会产生歧义

>>>a=(1)
1

以上定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
那么对于只有有个元素的元组的定义时必须加上逗号,例如:

>>>a=(1,)
(1,)

元祖的定义之后它的值就不会改变,但是对于元组中元素是没有限制的,元素可以是tuple,list,dict等,那么定义一个可变的元组,那么元组中的元素中有一个可变的列表,例如:

>>>a=(1,2,[2,3,4,5])
>>>a
(1, 2, [2, 3, 4, 5])

  • 元组的检索
    对于元组的检索使用和list检索相同的方法就行
  • 元组和list的差别
**相同点**
(1).使用同样的方式遍历
(2).以同样的方法进行切片和检索
**不同点**
(1).元组中的元素一旦定义就无法改变,所以就无法使用append()和extend()方法来增加元素。
(2).元组中的元素是无法修改的,所以也是不发使用remove()和pop()方法。
**tuple相对于list的优点**
(1).元组的速度比列表快
(2).元组对于不需要改变的数据进行‘写保护’,安全
(3).有时一些元组可以做字典键

猜你喜欢

转载自blog.csdn.net/kairui123/article/details/78938944