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

列表生成

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 **  for i in range() if i %  == ]
>>> print(lis)
[, , , , ]
>>>

列表的切片,索引

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

列表内置方法

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

append

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

insert

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

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 = [, , ]
>>> li = [, , ]
>>> lis.extend(li)
>>> print(lis)
[, , , , , ]
>>> lis.extend('')
>>> print(lis)
[, , , , , , '', '', '']
>>> print(lis)
[, , , , , , '', '', '']
>>> li = [, [, ], ]
>>> lis.extend(li)
>>> print(lis)
[, , , , , , '', '', '', , [, ], ]
>>>

copy

对list进行浅拷贝。返回一个拷贝的列表。
>>> print(lis)
[, , , '', [, ], , , '', , '']
>>> lis2 = lis.copy()
>>> print(lis, lis2)
['', , '', , , [, ], '', , , ]
['', , '', , , [, ], '', , , ]
>>> lis is lis2
False
>>>

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
[, , , ]
>>> lis.index()

count

计算某个元素在list中出现的次数。如果不存在返回0。实例:
>>> print(lis)
[, , , , , , '', '', '', , [, ], ]
>>> lis.count('') >>> lis.count() >>>

remove

该方法是删除第一个匹配到的指定的元素,如果不存在,抛出`ValueError`异常。该方法没有返回值。
>>> print(lis)
[, , , , '', [, ], , , '', , , '', ]
>>> lis.remove()
>>> print(lis)
[, , , , '', [, ], , , '', , '', ]
>>>

pop

该方法是根据指定索引删除元素,默认删除最后一个,***返回被删除的元素。***如果不存在,抛出`ValueError`异常。
>>> print(lis)
[, , , , '', [, ], , , '', , '', ]
>>> lis.pop() >>> print(lis)
[, , , , '', [, ], , , '', , '']
>>> lis.pop() >>> print(lis)
[, , , '', [, ], , , '', , '']
>>>

clear

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

sort

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

reverse

该方法将这个列表里的元素反转过来。
>>> print(lis2)
['', , '', , , [, ], '', , , ]
>>> lis2.reverse()
>>> print(lis2)
[, , , '', [, ], , , '', , '']
>>>

del关键字删除

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

元组

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

元组的内置方法

元组的内置方法有两个,`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

Python基础数据类型list,tuple的更多相关文章

  1. Python基础数据类型(四) tuple元祖

    元祖tuple(,) 元祖就是不可变的列表 元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制 tu = ('科比','詹姆斯','乔丹') tu = tuple('123') 小括号中 有一 ...

  2. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  3. python基础数据类型--元组(tuple)

    python基础数据类型--元组(tuple) 一.元组的定义和特性 定义:与列表相似,只不过就是将[ ] 改成 ( ) 特性:1.可以存放多个值 2.不可变 3.按照从左到右的顺序定义元组元素,下标 ...

  4. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  5. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  6. python基础数据类型1

    python基础数据类型1 part1: ''' ''': 三个单引号用于换行的字符串 字符串可以相加(拼接)相乘(重复) 在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代 ...

  7. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  8. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  9. 1--Python 入门--Python基础数据类型

    一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...

  10. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

随机推荐

  1. jquery-ui实现拖拽功能

    https://www.runoob.com/jqueryui/jqueryui-tutorial.html

  2. Python笔记12-----画图Matplotlib

    1.matplotlib:pyplot和pylab 如: import pylab as pl pl.figure(figsize=(8,6),dpi=100)[建立的图像大小和图的精度] pl.pl ...

  3. C语言基础 (9) 数组指针

    复习 只要把地址拿到就能这么操作.. (这里是合法的地址,不是野指针) 只有定义变量后,此变量的地址才是合法的地址 野指针就是保存没有意义地址的指针变量 操作野指针变量本身不会有任何问题 操作野指针所 ...

  4. [luogu4053 JSOI2007] 建筑抢修 (贪心 优先队列)

    传送门 题目描述 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤 ...

  5. [poj 2411]Mondriaan's Dream (状压dp)

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18903 Accepted: 10779 D ...

  6. LIS,LCS,LICS 学习笔记

    1.最长上升子序列(LIS) 子序列: 1.可以不连续 2.相对位置不变 dp[i][j] 表示前i位置,最大值为j的LIS长度 1. dp[i-1][j] 前i-1位置,最大值为j的LIS长度 (没 ...

  7. 获取Linux ip

    第一种方法: 在终端输入命令:ifconfig ip显示为红线标注的部分. 第二种方法: 在终端输入命令:hostname -I 第三种方法: 在终端输入:ip addr show|grep &quo ...

  8. Linux Shell脚本编程-语句控制

    过程式编程语言bash脚本编程面向过程的编程  顺序执行:默认法则,按照顺序一条一条语句执行  选择执行:分支,条件判断,符合条件的分支予以执行  循环执行:将同一段代码反复执行有限次,所以循环必须有 ...

  9. 小学生都能学会的python(一)2018.9.3

    一,小学生第一天 1,认识和了解python python的创始⼈为吉多·范罗苏姆(Guido van Rossum). python是一门解释性语言  弱类型语言 优点:(1).Python的定位是 ...

  10. 四大MQ比较及MQ详解

    消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之 一.当今市面上有很多主流的消息中间件,如老牌的Activ ...