Python数据类型-列表!!!

例题引导:

三个小盆友 Candy,Mandy,Sandy 分别拿着玩具 Teddy bear,Barbie,Lego。

建立列表存储上述变量,并依次输出每位小盆友拿着什么玩具(xxx is holding xxx.)。

参考答案:

kids = ['candy','mandy','sandy']
toys = ['Teddy bear','Barbie','Lego']  #先建立两个列表
for i in range(0,3):  #遍历输出
      print(kids[i].title()+' is holding '+toys[i]+'.')

学习引导:

  • 数据类型-列表
    • 增加
    • 插入
    • 嵌套
    • 删除
    • 修改
    • ……

数据类型-列表

List(列表) 是 Python 中使用最频繁的数据类型。

  • 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
  • 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
  • 列表截取的语法格式如下:变量[头下标:尾下标]
  • 列表中的元素是可以改变的,很多操作和字符串类似

下面演示部分列表常用的操作

a=['123','datascience','4345','f','3']
b=['ppp']
print(a[2])  #输出第三个元素
a[0]=321  #讲列表a中的第一个元素替换
print(a[0])  #打印a中第一个元素
print(a[0:3])  #打印a中第一个到第三个元素。注意:python语言取左不取右
print(a[2:-1])  #打印a中第三个到倒数第二个元素
print(a+b)  #将列表a,b相加
print(b*3)  #将列表b乘以三
'''
4345
321
[321, 'datascience', '4345']
['4345', 'f']
[321, 'datascience', '4345', 'f', '3', 'ppp']
['ppp', 'ppp', 'ppp']
'''

列表的特点:

  • 可存放多个值
  • 有序。按照从左到右的顺序定义列表元素,下标从0开始按顺序访问
  • 可修改指定索引位置的值,是可变的。

增加 append

names=['data','science']
names
#['data', 'science']
names.append('excellent')
names
#['data', 'science', 'excellent']

插入 insert/extend

names.insert(2,"数据科学")
names
#['data', 'science', '数据科学', 'excellent']
name=['数据科学','学姐','学长']
names.extend(name)
names
#['data', 'science', '数据科学', 'excellent', '数据科学', '学姐', '学长']

嵌套 insert

names
#['data', 'science', '数据科学', 'excellent', '数据科学', '学姐', '学长']
names.insert(2,[0,0,4])
names
#['data', 'science', [0, 0, 4], '数据科学', 'excellent', '数据科学', '学姐', '学长']

直接删除 del

names
#['data', 'science', [0, 0, 4], '数据科学', 'excellent', '数据科学', '学姐', '学长']
del names[2]
names
#['data', 'science', '数据科学', 'excellent', '数据科学', '学姐', '学长']

pop 删除

names
#['data', 'science', '数据科学', 'excellent', '数据科学', '学姐', '学长']
names.pop()  #默认删除最后一个元素并返回被删除的值
names.pop(1)
names
#['data', '数据科学', 'excellent', '数据科学', '学姐']

clear 清空

name
#['数据科学', '学姐', '学长']
name.clear()
name
#[]

修改

names
#['data', '数据科学', 'excellent', '数据科学', '学姐']
names[0]='data2'
names[-1]='Shon'
names
#['data2', '数据科学', 'excellent', '数据科学', 'Shon']

查操作 index /count/remove

names
#['data2', '数据科学', 'excellent', '数据科学', 'Shon']
names.index('excellent')  #返回从左开始匹配到的第一个excellent的索引
#2
names.count('数据科学')   #返回元素“excellent”的个数
#2
'data2' in names
#True
names
#['data2', '数据科学', 'excellent', '数据科学', 'Shon']
names.remove('Shon')
names
#['data2', '数据科学', 'excellent', '数据科学']

切片操作

就像切面包,一片一片的把列表切开

切片操作是列表操作中

a=['123','987','3','dc','真的','r']
a
#['123', '987', '3', 'dc', '真的', 'r']
a[0:2]
#['123', '987']
a[4:-1]
#['真的']
a[0:-1]
#['123', '987', '3', 'dc', '真的']
a[4:]
#['真的', 'r']
#步长
a[0:4:2]
#['123', '3']
a[0::2]
#['123', '3', '真的']
a[-1:-6:-1]
#['r', '真的', 'dc', '3', '987']
a[0::]
#['123', '987', '3', 'dc', '真的', 'r']

反转

a[::-1]
#['r', '真的', 'dc', '3', '987', '123']
a[::-2]
#['r', 'dc', '987']

排序

b=[4,90,54,23,44,456,1,4]
b
#[4, 90, 54, 23, 44, 456, 1, 4]
b.sort()
b
#[1, 4, 4, 23, 44, 54, 90, 456]
m='数据科学'
m
#'数据科学'
m[::-1]
#'学科据数'

循环列表

while循环 for循环

for i in b:
    print(i)
'''
1
4
4
23
44
54
90
456
'''

今日小作业

  1. 输入n个整数,用空格分开,输出这些整数中的最大值及最大值的下标,如对应多个下标,返回最小下标。

    例如输入3 4 7 2 5 7,输出7 2

  2. 判断季节,输入一个月份,判断该季节属于哪个季节

  3. 敏感词替换习题,模仿评论中出现敏感词后,替换成*,将不敏感的词以列表形式输出

  4. 用range()函数创建一个1到100的正整数数列:[1, 2, 3, …, 100]请利用切片从上述数列中分别取出:

前10个数;

后10个偶数;

3的倍数;

不大于50的5的倍数。

  1. 将输入的一行字符串构造为列表(每个字母为一个元素),依次做如下操作并输出结果:

    1) 将第2个元素(元素个数从0开始计算)直到末尾替换为op;

    2) 将第3个元素替换为ui;

    3) 从第2个元素开始直到末尾,每隔一个元素,替换一个元素,依次替换为wo

评论