博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础数据类型list,tuple
阅读量:5335 次
发布时间:2019-06-15

本文共 4575 字,大约阅读时间需要 15 分钟。

列表是有序的可变的元素集合。列表中的每个元素可以使任何数据类型,包括列表本身。

列表生成

Python3中的列表通过定义,for循环,列表推导式等几种方式生成

定义

直接通过中括号`[]`定义一个列表
lis = [1, 2, 'a', [1, 2], (2,), {
'key': 222}]

for循环

lis = []for i in range(10):    lis.append(i)

列表推导式

通过列表生成式 
[表达式 for 变量 in 列表 [if 条件]] 来实现,其中if条件是可选条件。
>>> lis = [i ** 3 for i in range(10) if i % 2 == 0]>>> print(lis)[0, 8, 64, 216, 512]>>>

列表的切片,索引

列表通过索引的操作和字符串的操作一直,都能进行查询,切片,替换,逆向切片等操作,但是:字符串不能通过索引重新赋值,而list可以。可以通过切片进行重新赋值。
>>> li = ['马拉多纳','外星人','小罗','内马尔']>>> li[2:3] = ['卡卡','C罗','齐达内','兰帕德']>>> li['马拉多纳', '外星人', '卡卡', 'C罗', '齐达内', '兰帕德', '内马尔']>>> li[2:5:2] = ['皮埃尔','佩佩']>>> li['马拉多纳', '外星人', '皮埃尔', 'C罗', '佩佩', '兰帕德', '内马尔']>>>

列表内置方法

list的内置方法有以下11种,主要是增加,删除,查找,排序,复制,反转的功能:
  • append
  • insert
  • extend
  • copy
  • count
  • remove
  • pop
  • clear
  • sort
  • reverse

append

该方法是将某个元素添加到`list`中末尾。
>>> lis = []>>> lis.append(1)>>> lis.append(2)>>> print(lis)[1, 2]>>>

 

insert

该方法是将某个元素添加到`list`中指定的索引。
>>> lis.insert(2, 3)>>> print(lis)[1, 2, 3]>>>

 

extend

该方法是传入一个可迭代对象,然后把每个元素添加到调用该方法的列表中,字符串会拆成一个一个的字符,然后从最后添加进去,只是把第一层添加进去,不会把嵌套的拆开。源码:
def extend(self, iterable): # real signature unknown; restored from __doc__    """ L.extend(iterable) -> None -- extend list by appending elements from the iterable """    pass
实例:
>>> lis = [1, 2, 3]>>> li = [4, 5, 6]>>> lis.extend(li)>>> print(lis)[1, 2, 3, 4, 5, 6]>>> lis.extend('789')>>> print(lis)[1, 2, 3, 4, 5, 6, '7', '8', '9']>>> print(lis)[1, 2, 3, 4, 5, 6, '7', '8', '9']>>> li = [10, [11, 12], 13]>>> lis.extend(li)>>> print(lis)[1, 2, 3, 4, 5, 6, '7', '8', '9', 10, [11, 12], 13]>>>

copy

对list进行浅拷贝。返回一个拷贝的列表。
>>> print(lis)[3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8']>>> lis2 = lis.copy()>>> print(lis, lis2)['8', 13, '9', 4, 10, [11, 12], '7', 6, 5, 3]['8', 13, '9', 4, 10, [11, 12], '7', 6, 5, 3]>>> lis is lis2False>>>

index

该方法是查找`list`中指定区间内的元素的索引,默认区间是全部列表。如果有,返回第一个找到的索引,反之,抛出ValueError异常。源码:
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__    """    L.index(value, [start, [stop]]) -> integer -- return first index of value.    Raises ValueError if the value is not present.    """    return 0

 

实例:
>>> lis[1, 2, 3, 3]>>> lis.index(3)2

 

count

计算某个元素在list中出现的次数。如果不存在返回0。实例:
>>> print(lis)[1, 2, 3, 4, 5, 6, '7', '8', '9', 10, [11, 12], 13]>>> lis.count('1')0>>> lis.count(6)1>>>

remove

该方法是删除第一个匹配到的指定的元素,如果不存在,抛出`ValueError`异常。该方法没有返回值。
>>> print(lis)[2, 3, 5, 6, '7', [11, 12], 10, 4, '9', 1, 13, '8', 1]>>> lis.remove(1)>>> print(lis)[2, 3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8', 1]>>>

 

pop

该方法是根据指定索引删除元素,默认删除最后一个,***返回被删除的元素。***如果不存在,抛出`ValueError`异常。
>>> print(lis)[2, 3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8', 1]>>> lis.pop()1>>> print(lis)[2, 3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8']>>> lis.pop(0)2>>> print(lis)[3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8']>>>

clear

删除list中的所有元素。返回一个空列表。
>>> print(lis)[[1, 2], [3, 4], [5, 6]]>>> lis.clear()>>> print(lis)[]>>>

 

sort

对列表进行排序。需注意:
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,`reverse = True`降序,`reverse = False`升序(默认)。
>>> print(lis)[4, 10, 13, 6, 5, 3]>>> lis.sort()>>> lis.sort(re)repr( return reversed(>>> lis.sort(reverse=True)>>> print(lis)[13, 10, 6, 5, 4, 3]
带key的排序:
>>> lis = [[1, 2], [3, 4], [5, 6]]>>> shuffle(lis)>>> print(lis)[[1, 2], [5, 6], [3, 4]]>>> lis.sort(key=second_element)>>> print(lis)[[1, 2], [3, 4], [5, 6]]>>>

reverse

该方法将这个列表里的元素反转过来。
>>> print(lis2)['8', 13, '9', 4, 10, [11, 12], '7', 6, 5, 3]>>> lis2.reverse()>>> print(lis2)[3, 5, 6, '7', [11, 12], 10, 4, '9', 13, '8']>>>

del关键字删除

删除列表中的元素。删除取到的元素。
>>> lis = [1, 2, 3, 4]>>> del lis[1:2]>>> lis[1, 3, 4]>>> del lis[1]>>> lis[1, 4]>>>

元组

元组是只读列表,值能读,不能修改,但是元组嵌套了其他可变数据类型,可则已修改元组里的可变类型的数据。
>>> tup = (1, 2, [3, 4], 5)>>> tup[2].append(6)>>> tup(1, 2, [3, 4, 6], 5)>>> tup[1] = 0Traceback (most recent call last):File "
", line 1, in
TypeError: 'tuple' object does not support item assignment>>>
元组由`()`表示,当只有一个元素是,后边要跟`,`括号也可以省虐不写。
>>> t = 1,>>> type(t)
>>>

元组的内置方法

元组的内置方法有两个,`count()`和`index()`两个。

count

用于计数。同列表的用法,源码:
def count(self, value): # real signature unknown; restored from __doc__    """ T.count(value) -> integer -- return number of occurrences of value """    return 0

index

用于索引,同list的用法。源码:
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__    """    T.index(value, [start, [stop]]) -> integer -- return first index of value.    Raises ValueError if the value is not present.    """    return 0

 

转载于:https://www.cnblogs.com/linga/p/9117419.html

你可能感兴趣的文章
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
字典常用方法
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>
Java中的编码
查看>>
PKUWC2018 5/6
查看>>
As-If-Serial 理解
查看>>
洛谷P1005 矩阵取数游戏
查看>>
在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
查看>>
无线通信基础(一):无线网络演进
查看>>