Python-列表和元祖

Python-列表和元祖

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!
我会在当天或者第二天及时回复,并且改进~~



在Python中,最基本的数据结构是序列,
序列包含:

  • 列表
  • 元祖

其他的内建序列类型有:

  • 字符串
  • Unicode字符串
  • buffer对象
  • xrange对象

一、通用序列操作
所有的序列类型都可以进行某些特定的操作。这些操作包括:索引、分片、加、乘及检查某个元素是否属于序列的成员。

1.1 索引

>>> name = 'hongxue'
>>> name[0]
'h'
>>> name[0:3]
'hon'
这就是索引,字符串是一个由字符组成的序列。索引0指向第1个元素,在当前例子中就是h
可以通过索引获取元素

>>> str = raw_input('Year: ')[3]
Year:2015
>>> str
'5'

1.2 分片
索引是访问单个元素,分片与索引类似,但是它来访问的是一定范围内的元素,分片通过冒号隔开的两个索引实现:

分片操作对于提取序列的一部分是很有用的。而编号在这里显得尤为重要。第1个索引是要提取的第1个元素的编号,而最后的索引则是分片之后剩余部分的第1元素的编号。

(1) 优雅的捷径
>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[0:3]
[1,2,3]
>>> numbers[3:8]
[4,5,6,7,8]
>>> numbers[2:7]
[3,4,5,6,7]
numbers[-3:-1]
[8,9]
numbers[-3:]
[8,9,10]
numbers[:3]
[1,2,3]
numbers[:]
[1,2,3,4,5,6,7,8,9,10]

分片示例:
>>> name = raw_input('Please input your name:')[0:4]
Please input your name:hongxue
>>> print name
'hong'

(2) 更大的步长
进行分片的时候,分片的开始和结束点需要进行指定(不管是直接还是间接)。而另外一个参数–步长通常都是隐式设定的。默认为1,则可以手动进行设置

>>> print numbers[:]
[1,2,3,4,5,6,7,8,9,10]
>>> numbers[0:10:2]
[1,3,5,7,9]
>>> numbers[3:6:3]
[4]
>>> numbers[::4]
[1,5,9]

当然,步长可以是负数,此时分片从右到左提取
>>> numbers[8:3:-1]
[9,8,7,6,5]
>>> numbers[10:0:-2]
['10,8,6,4,2']
>>> numbers[::-2]
[10,8,6,4,2]
>>> numbers[5::-2]
[6,4,2]
>>> numbers[:5:-2]
[10,8]

对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素,
对于一个负数步长,Python会从序列的尾部开始向左提取元素,直到第一个元素。

1.3 序列相加
通过使用加运算符可以进行序列的连接操作:

>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]

>>> x = ['hong']
>>> y = ['xue']
>>> x + y
['hong','xue']

当然,列表和字符串是无法连接在一起的,尽管它们都是序列。
两种类型相同的序列才能进行连接操作,例如:
>>> x = '123'
>>> y = ['4,5,6']
>>> x + y

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'list' objects

1.4 乘法
用数字x乘以一个序列会生成新的序列,而在新的序列中,原来的序列将被重复n次

>>> 'Python' * 5
'PythonPythonPythonPythonPython'
>>> [30] * 10
'30,30,30,30,30,30,30,30,30,30'

None、空列表和初始化
空列表可以简单的通过两个中括号进行表示,里面什么也没有。但是,如果想创建一个占用十个元素空间,却不包括任何有用内容的列表,可以想前面那样,[42] * 10,这样会更加实际一些。然而,有时候可能会需要一个值来代表空值—意味着里面没有任何东西,这个时候就需要用到None,None是Python的内键值,它的确切含义是”这里什么也没有”。

创建占用十个元素的空间
>>> [] * 10
[]

创建一个空值
>>> Value = [None] * 10
>>> Value
[None,None,None,None,None,None,None,None,None,None]
代码清单   序列(字符串)乘法表示

sentence = raw_input('Sentence: ')

screen_width = 80
text_width = len(setence)
box_width = text_width + 6
left_margin = (screen_width - box_width) / 2

print
print ' ' * left_margin + '+'  + '-' * (box_width-2) + '+'
print ' ' * left_margin + '| ' + ' ' * text_width    + '|'
print ' ' * left_margin + '| ' +       sentence      + '|'
print ' ' * left_margin + '| ' + ' ' * text_width    + '|'
print ' ' * left_margin + '+'  + ‘-’ * (box_width-2) + '+'
print 

1.5 成员资格
为了检查一个值是否在序列中,可以使用in运算符,这个运算符检查某个条件是否为真,然后返回相应的值,也叫做’布尔值’

条件为真返回True
条件为假返回False
>>> permissions='rw'
>>> 'r' in permissions
>>> 'w' in permissions
>>> 'x' in permissions

#检查用户是否在name列表中
>>> name = ['hongxue','xiaomao','yixiao']
>>> 'hongxue' in name
>>> 'xiaomao' in name
#检查用户名和PIN码
>>> database = [['hongxue','123'],['yixiao','456'],['xiaomao','789']]
>>> username = raw_input('User name: ')
>>> pin = raw_input('PIN code: ')
>>> if [username,pin] in database : print 'Access granted'

1.6 长度、最小值和最大值
内建函数len、min和max非常有用

len函数返回序列中所包含元素的数量
min函数返回序列中最小的元素
max函数返回序列中最大的元素

numbers = [456,214,999]
>>> len(numbers)      #返回元素个数
3
>>> min(numbers)      #返回最小元素
214
>>> max(numbers)      #返回最大元素
999
时间: 2024-11-03 20:42:31

Python-列表和元祖的相关文章

详解Python中列表和元祖的使用方法_python

list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] 变量classmates就是一个list.用len()函数可以获得list元素的个数: >>> len(c

python实现将元祖转换成数组的方法

  这篇文章主要介绍了python实现将元祖转换成数组的方法,涉及Python中list方法的使用技巧,需要的朋友可以参考下 本文实例讲述了python实现将元祖转换成数组的方法.分享给大家供大家参考.具体分析如下: python的元祖使用一对小括号表示的,元素是固定的,如果希望添加新的元素,可以先将元祖转换成数组列表,再进行操作 ? 1 2 3 colour_tuple = ("Red","Green","Blue") colour_list

浅析Python中元祖、列表和字典的区别_python

1.列表(list) list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的项目应该包括在方括号中,这样Python就知道你是指明一个列表.一旦你创建了一个列表,就可以添加.删除,或者是搜索列表中的项目.由于你可以增加或者删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,且列表是可以嵌套的. 实例: #coding=UTF-8 #author:RXS002 animalslist = ['fox','tiger','rabbit','snake']

Python字符串/元祖/列表/字典互转介绍

  #-*- coding:UTF-8 -*- #author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串,返回:<type 'str'> {'age':7,'name':'Zara','class':'First'} print (type(str(dict)),str(dict)) #字典可以转为元祖,返回:('age','name','class') print (tuple(dict) #字

python通过apply使用元祖和列表调用函数实例

  本文实例讲述了python通过apply使用元祖和列表调用函数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 def my_fuc(a, b): print a, b atuple=(30,10) alist= ['Hello','World!'] apply(my_fuc,atuple) apply(my_fuc,alist) 运行结果如下: ? 1 2 30 10 Hello World! 希望本文所述对大家的Python程序设计有所帮助.

在Python中使用元类的教程

  这篇文章主要介绍了在Python中使用元类的教程,是Python当中的基础知识,代码基于Python2.x版本,需要的朋友可以参考下 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello.py模块: ? 1 2 3 class Hello(object): def hello(self, name='world'): print('Hello, %s.' % name) 当Py

Python列表list数组array用法实例解析_python

本文以实例形式详细讲述了Python列表list数组array用法.分享给大家供大家参考.具体如下: Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构.   创建列表   复制代码 代码如下: sample_list = ['a',1,('a','b')]   Python 列表操作 复制代码 代码如下: sample_list = ['a','b',0,1,3]   得到列表中的某一个值 复制代码 代码如下: value_start = sampl

list-!求助:python 列表读取时的问题

问题描述 !求助:python 列表读取时的问题 project euler problem 81题我写了下面的代码,origin里面是5x5的矩阵,运行结果正常但是我把origin换成一个80x80的矩阵的时候,在读取383568的时候却读取成了326735我没有找出代码的问题,但是在codepad和terminal上运行也是错误答案求助大牛啊!!大恩不言谢 origin = ['13167323410318' '20196342965150' '630803746422111' '53769

python列表操作实例_python

本文实例讲述了python列表操作的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: class Node:    """Single node in a data structure"""      def __init__(self, data):       """Node constructor"""              self._data = da