第二篇 python基础序列之-----列表和元组

1 python中的容器的概念

python中的容器

       |-----序列(用索引标识每个元素)

       |           |-----列表、元组、字符串

       |-----映射(每个元素包含key)

       |           |-----字典

       |-----集合

                   |------Set

  

注意:列表和元组的不同?

列表可以修改(如插入元素),而元组不可以修改。

2 python序列中常见的操作

   序列的操作有:索引、切片、相加、相乘和成员检查

  2.1 索引

   序列中的每个元素都有索引,从0开始编号,-1表示最后一个元素的位置

  题?

   year=input("year:")

   print(year[3])

2.2 切片

 通过切片获取指定范围的元素

 序列对象[起始索引:结束索引:步长]

步长默认为1

例如:

#定义列表

x=[1,2,3,4,5,6,7,8,9,10]

#得到所有列表值

y=[::]或y[::]

#得到倒序列表值

x=[::-1]

思考以下结果?

x[7:10]

x[-3:-1]

x[-3:]

x[:-3]

x[-3:0]

注意:步长为负数表示从右向左取值

y=x[8:3:-1]

结果是:

[9,8,7,6,5]

思考题

y=x[::-2]

y=x[5::-2]

y=x[:5:-2]

2.3 相加

可以使用“+”运算符拼接序列

x=[1,2]+[3,4]

注意:

只能拼接相同类型的序列

x=[1,2]+"abc"  #error

2.4 相乘

序列与一个整数n相乘,创建一个重复n次的序列

注意:

None在python表示什么都没有

x=[None]*3

结果:

[None,None,None]

2.5 成员检查

序列使用in操作符号检查是否包含没有元素, 返回True或False(python支持的布尔类型)

y=8 in [1,3,5]

结果

False

2.6 内置简单的支持序列的函数

x=[3,2,5]

mLen=len(x)

mMax=max(x)

mMin=min(x)

3 列表

  列表形式

    x=[1,2,3]#有点像java中的数组呢

 3.1 基本操作之ABC

   A:按索引修改列表值

   x=[1,2,3]

   x[1]=8

   B:按索引删除元素

   del x[1]

   C:  切片赋值

   x[1:]="hello"

   注意:

      利用切片插入元素,例如

       x[0:0]="hello"

     利用切片删除指定范围的元素

      x[1:3]=[]

   练习:

     请将x=[1,2,3,4]修改成[1,'o','k',4]

  特别提示

     String类型并不是列表,python中String类型与列表类型转换

      y=list('istudypython')
        print(y)
    str=','.join(y)

        print(str)

3.2 常规操作

1) append

将对象追加到列表的后面

x=[1,2,3]
x.append("bee")

结果:

[1, 2, 3, 'bee']

2) clear

清空列表

3) copy

复制列表副本

练习

x=[1,2,3]

y=x

y[1]=8

查看x和y列表的结果

如果将赋值替换成copy函数,查看结果

x=[1,2,3]

y=x.copy()

y[1]=8

4) count

统计对象在列表元素中的出现次数

练习

x=[1,[2,3],2,[3],4,2]

y=x.count(2)

y的结果?

5) extends

extends操作在原列表的尾部将对象插入

x=[1,2,3]

x.append([5,6])

print(x)

结果

[1,2,3,[5,6]]

注意:

append和extends区别

append将元素当做一个完整对象追加到列表后面并生成一个新的列表元素;

extends将元素分解后添加列表后,可能会生成多个元素;

思考:

试说明列表的append操作和+操作的区别?为什么append效率高于+操作?

6) index

index方法用于查询对象第一次在列表中出现的位置, 找不到将报错

x=[1,2,8]

y=x.index(8)

7) insert

在指定索引位置插入元素

x=[1,2,3,4]

x.insert(2,5)

print(x)

结果:

1,2,5,3,4

练习:

写出与上面insert方法等同的操作

8) pop

从列表中删除一个元素,并返回该元素,默认返回最后一个元素

x=[1,2,3,4]
y=x.pop(1)
print(x)

print(y)

结果:

[1, 3, 4]

2

9) remove

删除列表中第一个指定的元素,如果找不到则报错

例:

data=[3,5,9]

data.remove[9]

结果

[3,5]

10) reverse

反转列表中的值

11) sort

将列表按从小到大就地排序

注意:

sort方法将原列表排序后,并没有返回排序后的列表,而是返回None;

可以使用sorted函数完成排序,并返回排序后的列表

12) 带参数的sort

可以为sort添加key和reverse关键字参数

A:key表示使用key指定的函数对列表进行排序

例如:key关键字指定了len函数,则排序结果按元素的长度进行排序

x=['wc','apple','bike','z']
x.sort(key=len)

print(x)

结果

['z', 'wc', 'bike', 'apple']

B:reverse关键字取值True或False,表示是否对按相反顺序进行排序

x=[8,2,9,7,6]

x.sort(reverse=True)

print(x)

结果

[9, 8, 7, 6, 2]

4 元组

 4.1 元组的声明 

元组与序列的差别是,不能修改;

元组声明的几种方式

A: x=1,2,3

B: x=(1,2,3)

C: x=3,

练习

x=3*(8+1)

y=3*(8+1,)

查看x和y的结果?

4.2 元组的tuple函数

tuple函数的作用是将一个序列转换成元组,并返回该元组

x=tuple([1, 2, 3])

print(x)

结果

(1, 2, 3)
y=tuple('abc')

print(y)

结果

('a', 'b', 'c')

  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值