数据结构之列表

列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。
列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是 可变的 数据类型,即这种类型是可以被改变的。
对象与类的快速入门
尽管我一直推迟讨论对象和类,但是现在对它们做一点解释可以使你更好的理解列表。我们会在相应的章节详细探索这个主题。
列表是使用对象和类的一个例子。当你使用变量i并给它赋值的时候,比如赋整数5,你可以认为你创建了一个类(类型)int的对象(实例)i。事实上,你可以看一下help(int)以更好地理解这一点。
类也有方法,即仅仅为类而定义地函数。仅仅在你有一个该类的对象的时候,你才可以使用这些功能。例如,Python为list类提供了append方法,这个方法让你在列表尾添加一个项目。例如mylist.append(‘an item‘)列表mylist中增加那个字符串。注意,使用点号来使用对象的方法。
一个类也有域,它是仅仅为类而定义的变量。仅仅在你有一个该类的对象的时候,你才可以使用这些变量/名称。类也通过点号使用,例如mylist.field。
使用列表
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

例9.1 使用列表

#!/usr/bin/python
# Filename: using_list.py
# This is my shopping list
shoplist=[‘apple‘,‘mango‘,‘carrot‘,‘banana‘]
print ‘I have‘,len(shoplist),‘items to purchase‘
print ‘These items are:‘,
for item in shoplist:
    print item,
print ‘\nI also have to buy rice.‘
shoplist.append(‘rice‘)
print ‘My shopping list is now‘,shoplist
print ‘I will sort my list row‘
shoplist.sort()
print ‘Sorted shopping list is‘,shoplist
print ‘The first item I will buy is‘,shoplist[0]
olditem=shoplist[0]
del shoplist[0]
print ‘I bought the‘,olditem
print ‘My shopping list is now‘,shoplist

输出
[[email protected] python]#
[[email protected] python]# python using_list.py
I have 4 items to purchase
These items are: apple mango carrot banana
I also have to buy rice.
My shopping list is now [‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘, ‘rice‘]
I will sort my list row
Sorted shopping list is [‘apple‘, ‘banana‘, ‘carrot‘, ‘mango‘, ‘rice‘]
The first item I will buy is apple
I bought the apple
My shopping list is now [‘banana‘, ‘carrot‘, ‘mango‘, ‘rice‘]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
它如何工作
变量shoplist是某人的购物列表。在shoplist中,我们只存储购买的东西的名字字符串,但是记住,你可以在列表中添加 任何种类的对象 包括数甚至其他列表。
我们也使用了for..in循环在列表中各项目间递归。从现在开始,你一定已经意识到列表也是一个序列。序列的特性会在后面的章节中讨论。
注意,我们在print语句的结尾使用了一个 逗号 来消除每个print语句自动打印的换行符。这样做有点难看,不过确实简单有效。
接下来,我们使用append方法在列表中添加了一个项目,就如前面已经讨论过的一样。然后我们通过打印列表的内容来检验这个项目是否确实被添加进列表了。打印列表只需简单地把列表传递给print语句,我们可以得到一个整洁的输出。
再接下来,我们使用列表的sort方法来对列表排序。需要理解的是,这个方法影响列表本身,而不是返回一个修改后的列表——这与字符串工作的方法不同。这就是我们所说的列表是 可变的 而字符串是 不可变的 。
最后,但我们完成了在市场购买一样东西的时候,我们想要把它从列表中删除。我们使用del语句来完成这个工作。这里,我们指出我们想要删除列表中的哪个项目,而del语句为我们从列表中删除它。我们指明我们想要删除列表中的第一个元素,因此我们使用del shoplist[0](记住,Python从0开始计数)。

如果你想要知道列表对象定义的所有方法,可以通过help(list)获得完整的知识。

时间: 2024-08-21 23:43:05

数据结构之列表的相关文章

Python数据结构——散列表

散列表的实现常常叫做散列(hashing).散列仅支持INSERT,SEARCH和DELETE操作,都是在常数平均时间执行的.需要元素间任何排序信息的操作将不会得到有效的支持. 散列表是普通数组概念的推广.如果空间允许,可以提供一个数组,为每个可能的关键字保留一个位置,就可以运用直接寻址技术. 当实际存储的关键字比可能的关键字总数较小时,采用散列表就比较直接寻址更为有效.在散列表中,不是直接把关键字用作数组下标,而是根据关键字计算出下标,这种 关键字与下标之间的映射就叫做散列函数. 1.散列函数

数据结构单列表的合并实现

package com.he.list; public class Collections { public static ArrayList union(ArrayList l1, ArrayList l2) { int l2_length = l2.getLength(); for (int i = 0; i < l2_length; i++) { if (!l1.contains(l2.get(i))) { l1.add(l2.get(i)); } } return l1; } publi

python数据结构之 列表和元组

python数据结构之 列表和元组 序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始).典型的序列包括列表.字符串和元组.其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(一旦创建了就是固定的).序列中包含6种内建的序列,包括列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 列表的声明: mylist = [] 2.列表的操作: (1) 序列的分片: 用法:mylist[startIndex:endIndex:step] exam: myli

Python学习笔记(3)--数据结构之列表list

Python的数据结构有三种:列表.元组和字典 列表(list) 定义:list是处理一组有序项目的数据结构,是可变的数据结构. 初始化:[], [1, 3, 7], ['a', 'c'], [1, 's', 'des',256]等 1.增加:append(value).extend(list2).insert(i, value) 2.删除:pop([i]).remove(value) 2.1  i可以是负值 2.2  i超出范围会报out of range错误 2.3  remove只会移除第

Python数据结构:列表、元组和字典

在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元组.元组通过圆括号中用逗号分割的项目定义. 元组最通常的用法是用在打印语句中 age = 22 name = 'Swaroop' print '%s is %d years old' % (name, age) print 'Why is %s playing with that python?'

Python数据结构之列表类型(list)

数据结构之列表类型(list) 列表说明 增加元素到列表 删除列表元素 更改列表元素 查看列表元素 列表脚本操作符 列表截取与拼接 嵌套列表 列表内置函数 一.列表说明 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片,加,乘,检查成员. Python已经内置确定序列的长度以及确定最大和最小的元素的方法 列表的数据项

Python学习—基础数据结构之列表

基本数据结构之列表 列表list是一种有序的集合,可以随时添加和删除其中的元素.与c.java中的数组有相似之处,但是c.java中的数组必须存放同一类型的元素,而在python的列表中,存放的元素可以是不同的类型.序列都可以进行的操作包括索引,切片,加,乘,检查成员. 1.列表的表示 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可. list1 = ['str','中文',123,'Python'] list2 = [2,3,5,78,999] list3 = [['str1'

redis 底层数据结构 压缩列表 ziplist

当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做哈希键的底层实现. 压缩列表是Redis为了节约内存而开发的是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者一个整数值 ziplist 数据结构 压缩列表节点的构成 每个压缩列表节点可以保存一个字节数组或者一个整数值,其中字节数组可以是以下三种长度的其中一种 长度小于等于63字节的字节数组 长度小

Python数据结构之列表、元组及字典

一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Python中内建的三种数据结构----列表.元组以及字典. 列表 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目. 1.list函数 因为字符串不能像列表一样被修改,所以有时候根据字符串创建列表就很有用了,list可以实现这个操作: 1 >>>list("H

数据结构之列表-javascript实现

学习数据结构的记录 列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入,和删除 列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容 front,end,prev,next使用了迭代器的原理 'use strict' function Lis