Python list(列表) 和 tuple(元组)

list 列表

Python内置的一种数据结构。list:一种有序的集合,可以随时添加和删除其中的元素。

list的用法

定义list

>>> people = ['Aobo Jaing', 'Yunjie Wu', 'Shutong Liu']
>>> people
['Aobo Jaing', 'Yunjie Wu', 'Shutong Liu']

或者:([]表示list数据类型。)

>>> L = []
>>> len(L)
0

得到list中元素的数量,即获取list长度

>>> len(people)
3

得到list中指定的元素

>>> people[0]
'Aobo Jaing'
>>> people[1]
'Yunjie Wu'
>>> people[2]
'Shutong Liu'
>>> people[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

索引超出了范围,Python报出IndexError错误。所以,要确保索引不要越界,最后一个索引号是:len(people)-1或者-1

>>> people[len(people)-1]
'Shutong Liu'
>>> people[-1]
'Shutong Liu'

同样的原理:

>>> people[-2]
'Yunjie Wu'
>>> people[-3]
'Aobo Jaing'

list里添加元素

  • 追加到list末尾
>>> people.append('Binggun Xiao')
>>> people
['Aobo Jaing', 'Yunjie Wu', 'Shutong Liu', 'Binggun Xiao']
  • 添加到指定索引位置
>>> people.insert(1, 'TianTong Ji')
>>> people
['Aobo Jaing', 'TianTong Ji', 'Yunjie Wu', 'Shutong Liu', 'Binggun Xiao']

删除list中的元素

  • 删除最后一个元素
>>> people.pop()
'Binggun Xiao'
>>> people
['Aobo Jaing', 'TianTong Ji', 'Yunjie Wu', 'Shutong Liu']
  • 删除指定索引值的元素
>>> people.pop(1)
'TianTong Ji'
>>> people
['Aobo Jaing', 'Yunjie Wu', 'Shutong Liu']

改变list某个元素的值

>>> people[2] = 'Yue Chen'
>>> people
['Aobo Jaing', 'Yunjie Wu', 'Yue Chen']

其他

  • list里面的元素的数据类型可以不同
>>> L = ['Banana', 123, True]
  • list里面的元素也可以有list数据类型
>>> p = ['C', 'C++']
>>> s = ['python', 'java', p, 'scheme']
>>> len(s)
4
>>> s[2][1]
'C++'

tuple 元组

什么是元组:就是一个定义完,就不能在改变的list列表。(简单的说,tuple元组类似于C语言里的静态数组。)

Python中的另一种数据类型:tuple。与list非常类似,只是tuple一旦初始化就不能修改,所以tuple没有append()insert()这样的方法。

tuple:定义

()表示tuple数据类型。)

>>> people = ('Aobo Jaing', 'Yunjie Wu', 'Shutong Liu')
>>> people
('Aobo Jaing', 'Yunjie Wu', 'Shutong Liu')

tuple:不可改变

不可改变指的是:不能添加删除元素,并且元素值也是不可以改变的:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[0] = 'c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

但是tuple里的list元素是可以改变元素值的。

>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

tuple:注意

>>> t = (1)
>>> t
1

如果只有一个元素,需要注意,那么定义的就不是tuple数据结构,是1这个整数变量类型。所以,就一个元素的tuple需要这样定义:

>>> t = (1,)
>>> t
(1,)

Python显示只有1个元素的tuple,会在后面加一个逗号,,就是为了区分。


总结

listtuplePython内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。


Python 中还有三中数据结构字典序列引用。后面的学习中会依次讲解。


参考网站:

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000#0

Learning Python 006 list(列表) 和 tuple(元组)的更多相关文章

  1. Python数据类型list(列表)和tuple(元组)

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  2. Python list 列表和tuple元组

    1 list是一种Python的数据类型--列表 list是一种有序的集合,可以进行增删改查 >>>name=[aa,bb,cc] >>>name ['aa','b ...

  3. list列表、tuple元组、range常用方法总结

    list 列表(数组),是可迭代对象,列表是可变的所以列表的方法都是在列表本身更改的.里面看可以放各种数据类型的数据,可存储大量数据 连接列表可以使用 + 或 extend() a = [1, 3, ...

  4. python切片、列表解析、元组

    1.列表解析 test = [x**2 for x in range(1,11)] 2.切片 test1 = ["a","b","c",&q ...

  5. python list(列表)和tuple(元组)

    200 ? "200px" : this.width)!important;} --> 介绍 python中存在两种有序的类型列表,分别是list(列表)和tuple(元组) ...

  6. python基础之 list和 tuple(元组)

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  7. Python 第二章-列表和元组

    第二章-列表和元组 2.0      在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...

  8. python基础2--数据结构(列表List、元组Tuple、字典Dict)

    1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...

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

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

随机推荐

  1. 事件监听机制——列出指定目录内容、添加Dialog对话框

    事件监听机制理解与Dialog练习 利用Java语言,仿照我的电脑目录进行打开目录,输入文件路径,查看该路径下所有的文件,设置两个文本框,一个转到按钮,当点击转到按钮时,查看路径是否正确,若正确在第二 ...

  2. web框架详解之tornado 二 cookie

    一.tornado之cookie一 目录: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  3. ansible普通用户su切换问题

    在现网应用中,安全加固后的主机是不允许直接以root用户登陆的,而很多命令又需要root用户来执行,在不改造现网的情况下.希望通过一个普通用户先登陆,再su切到root执行.而且每台主机的普通用户和r ...

  4. 剑指offer之 从上往下打印二叉树

    import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode { int val = 0; Tr ...

  5. 算法(Algorithms)第4版 练习 2.1.24

    代码实现: package com.qiusongde; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; ...

  6. Qt中 QTableWidget用法总结

    转自--> http://edsionte.com/techblog/archives/3014 http://hi.baidu.com/fightiger/item/693aaa0f0f87d ...

  7. WCF寄宿(Host)之自我寄宿(Self-Hosting)简单实例【Windows应用程序宿主】

     前言: 以各种应用程序做自我寄宿的宿主原理方法大同小异,故:这儿直接上案例! 步骤一:创建服务契约和服务 1.新建解决方案:添加WCF服务库项目. 2.为了演示,我把自动生成的接口以及实现接口的类删 ...

  8. QWidget上下文菜单处理函数

    QWidget类是Qt中所有可视化部件的基类,其很多函数都是虚函数,能被子类重写以表现不同形式和功能,今天来学习一下QWdiget的事件处理函数. 事件是鼠标.键盘或系统因其自身某些状态发生改变而引起 ...

  9. freeMarker(二)——模板开发指南之入门

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 模板开发指南-入门  1.模板+数据模型=输出 假设在一个在线商店的应 ...

  10. 线段树Final版本

    结构体是个好东西... 看着逼格很高 #include<iostream> #include<cstdio> #include<cstdlib> #include& ...