Learning Python 006 list(列表) 和 tuple(元组)
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,会在后面加一个逗号,,就是为了区分。
总结
list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
Python 中还有三中数据结构:字典、序列、引用。后面的学习中会依次讲解。
Learning Python 006 list(列表) 和 tuple(元组)的更多相关文章
- Python数据类型list(列表)和tuple(元组)
list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
- Python list 列表和tuple元组
1 list是一种Python的数据类型--列表 list是一种有序的集合,可以进行增删改查 >>>name=[aa,bb,cc] >>>name ['aa','b ...
- list列表、tuple元组、range常用方法总结
list 列表(数组),是可迭代对象,列表是可变的所以列表的方法都是在列表本身更改的.里面看可以放各种数据类型的数据,可存储大量数据 连接列表可以使用 + 或 extend() a = [1, 3, ...
- python切片、列表解析、元组
1.列表解析 test = [x**2 for x in range(1,11)] 2.切片 test1 = ["a","b","c",&q ...
- python list(列表)和tuple(元组)
200 ? "200px" : this.width)!important;} --> 介绍 python中存在两种有序的类型列表,分别是list(列表)和tuple(元组) ...
- python基础之 list和 tuple(元组)
list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
- Python 第二章-列表和元组
第二章-列表和元组 2.0 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...
- python基础2--数据结构(列表List、元组Tuple、字典Dict)
1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
随机推荐
- Spark MLlib框架详解
1. 概述 1.1 功能 MLlib是Spark的机器学习(machine learing)库,其目标是使得机器学习的使用更加方便和简单,其具有如下功能: ML算法:常用的学习算法,包括分类.回归.聚 ...
- curl简单封装 get post
Curl.php <?php /** * Class Curl curl简单封装 get post */ class Curl { /** * @brief get请求 * @param $ur ...
- 在unigui中为组件添加hint
//改变hint的样式procedure TUniForm1.UniFormShow(Sender: TObject);var i: Integer;begin for I := 0 to Self. ...
- Oracle视图的使用
--视图的语法 create [ or replace ] [NO Force | Force] View schema.view_name--视图名称 [(alias,...)inline_cons ...
- C#中在内容页获取其模板页中的变量,或者值
在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题, ...
- 理解VMware虚拟网络
简述:VMware虚拟网络概述.实现虚拟网络上网 Part0 子网掩码.DHCP.NAT,这些点请自行百度,百度百科讲的很清晰. Part1 转载:本文出自 "王春海的博客" 博客 ...
- Unity Webplayer installation error- Unity Webplayer update finished, but installed..
https://forum.unity3d.com/threads/unity-webplayer-installation-error-unity-webplayer-update-finished ...
- JSONP -- 跨域数据交互协议
一.概念 ①传统Ajax:交互的数据格式——自定义字符串或XML描述: 跨域——通过服务器端代理解决. ②如今最优方案:使用JSON格式来传输数据,使用JSONP来跨域. ③JSON:一种数据交换格式 ...
- 构建嵌入式小型Linux系统
构建嵌入式小型Linux系统 摘要:用buildroot构建x86的交叉编译工具链:裁减linux内核,尽可能做到最小:手工构建根文件系统:安装qemu虚拟机,仿真新配置的Linux系统:为新配置的L ...
- RTSP 协议分析 (一)
RTSP 协议分析1.概述: RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwor ...