Python--list和tuple

list:

简介:

     py内置的一种数据类型是列表。list是一种有序的集合,可以随时添加或者删除其中的元素。

格式:

     classmates=['str',num] #里面可以放数字或者字母

索引

     采用索引的方式来访问list,索引是从0开始的

classmates = ['Michael', 'Bob', 'Tracy']

>>>classmates[0]    'Michael'

>>> classmates[1]      'Bob'

>>> classmates[2]     'Tracy'

>>> classmates[3]    # 不可以越界访问

Traceback (most recent call last): File "", line 1, in IndexError: list index out of range

负索引: 当使用负索引的时候,是从后往前取list的值 索引 -1对应最后一个,-n对应第一个

当然了 不可以超过 索引的长度

>>> classmates[-1]    'Tracy'

list相关函数

len():输出值是list的长度

len(classmates)   #不可以使用 classmates.len()

Out[11]:3

append():可以往list中追加元素到list的末尾

classmates.append('Adam')

>>> classmates

['Michael', 'Bob', 'Tracy', 'Adam']

insert():将元素插入到指定的索引号,即把某个索引之后的元素都往后移,再把元素插入到这个索引上

>>> classmates.insert(1, 'Jack')

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

pop():删除list末尾的元素,pop(i)是删除指定索引的元素

classmates.pop() 

'Adam'

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy']

 

list 元素也可以是另一个 list,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']

注:

1.list是可以混用的,里面既可以有 数字 又可以有字母或者其他类型

L = ['Apple', 123, True]

2.list可以嵌套

s = ['python', 'java', ['asp', 'php'], 'scheme']

len(s)

    4

要注意 s 只有 4 个元素,其中 s[2]又是一个 list

p = ['asp', 'php']

>>> s = ['python', 'java', p, 'scheme'] 要拿到'php'可以写 p[1]或者 s[2][1],因此 s 可以看成是一个二维数组,

tuple

      另一种有序列表叫元组:tuple.tuple和list非常类似,但是与list不同的是tuple一经初始化就无法再改变

命名格式:

tuple=('字母',数字)

获取方法:

    和list相同,使用正索引 或者负索引来使用 

tuple的陷阱:

当定义一个空的tuple,可以写成():

>>> t = ()

>>> t

()

但是当定义一个只有一个元素的tuple的时候,如何定义为

>>> t = (1)

>>> t

1

定义的不是tuple,是1这个数!这是因为()即可以表示tuple又可以表示数学公式中的小括号,这种情况py把()看成算符运算的()

正确的定义,必须在tuple之后加个逗号,  来消除歧义

>>> t = (1,)

>>> t

(1,)

 

最后来看一下可变的tuple

>>> t = ('a', 'b', ['A', 'B'])

>>> t[2][0] = 'X'

>>> t[2][1] = 'Y'

>>> t

('a', 'b', ['X', 'Y'])

表面上看,tuple 的元素确实变了,但其实变的不是 tuple 的元素,而是 list 的元素。tuple 一开始指向的 list 并没有改成别的 list,所以,tuple 所谓的“不变”是说,tuple 的每个元素,指向永远不变。即指向'a',就 不能改成指向'b',指向一个 list,就不能改成指向其他对象,但指向的 这个 list 本身是可变的!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值