一、列表:

为什么要学列表?

因为字符串存在缺点:

1)      只能存储少量的数据。

2)      数据类型无论索引、切片 获取的都是字符串类型,类型过于单一,转化成它原来的类型还需要进一步转换。

列表是Python的基础数据类型之一:list列表。

列表是以中括号组成,每个元素以逗号隔开的,容器型数据类型。

eg:[1,’zhao’,[1,2,3],Ture,{‘name’:’zhaoruofei’},(22,33)]

列表是一个有序的可以存储大量的数据的数据类型。

1、 列表的切片

l1 = ['赵若飞', 100, 'zhao', '日天']
列表的切片、索引
ret=l1[0]
ret1=l1[1]
print(ret1,type(ret1))
print(type(l1[:3]))  #类型为list。

2、 列表的常用操作

l1 = ['赵若飞', '赵若飞', 100, 'zhao', '日天', '你好', 999]

增:append 在尾部追加(只能单个追加)

l1.append('好好好')
l1.append(23)
l1.append([2,3,4])
print(l1)

insert 插入指定位置

l1.insert(1,'男')
print(l1)

extend 迭代着追加,意为拆分开依次追加

l1.extend('zhao')
l1.extend(['帮',555])
print(l1)

删:pop 按照索引删除,会将删除的元素作为返回值返回

ret=l1.pop(0)
print(l1)
print(ret)

remove 按照元素删除,没有返回值

ret = l1.remove('赵若飞')
print(ret)
print(l1)

  clear 清空列表

l1.clear()
print(l1)

del的使用:

    按照索引删除

    按照切片(可以加步长)删除

删除整个列表

del l1[-2]
del l1[1:]
del l1[::2]
del l1
print(l1)

改:改某个元素

切片改

l1[0]='男神'
print(l1)

切片(步长)改,必须与步长一一对应

l1[:3]='abcd' #迭代添加
print(l1)

切片(步长)改,必须与步长一一对应
l1[1:4:2]='a'
l1[1:4:2]='a2'
print(l1)

其他方法:

Len         获取列表的长度(总个数)

Count     计算某个元素出现的次数

Index      通过元素找到索引,找到第一个就返回,找不到就报错

Sort        从小到大排序

Sort(reverse=True)       从大到小排序

Reverse         反转,不排序

3、 列表的嵌套

练习:l1 = [1, 2, 'taibai', [1, 'alex', 3,]]

1, 将l1中的'taibai'变成大写并放回原处。2,给小列表[1,'alex',3,]追加一个元素,'老男孩教育'。3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'

l1 = [1, 2, 'taibai', [1, 'alex', 3,]]
l1[2]=l1[2].upper()
print(l1)

l1[3].append('老男孩教育')
print(l1)

l1[3][1]=l1[3][1]+'sb'
print(l1)

4、 列表的总结:

Python常用的数据类型,工作中,都是涉及到嵌套的列表居多。增删改查。

5、 何时用列表:

需要大量数据排序的时候。

二、元组(只可以删除整个元组)

是Python中基础数据类型之一,容器型数据类型,存储大量的数据。

()里面的元素以,隔开的数据类型。

元组是不可以进行修改的,只能查询。

元组中存储的都是重要的数据,个人信息等等。

Eg:

tu1=(1,'alex',[1,2,3],True)
#可索引可切片
print(tu1[1])
print(tu1[:3])

元组只能查询,不能更改

索引、切片(步长) 查询 、计算元素出现次数

三、Range(顾头不顾尾)

内置函数,python给你提供的一个功能。

将range视为:可控范围的数字列表。

Eg:

range(1,10)
for I in range(1,10):
print(i)

结果为1 2 3 4 5 6 7 8 9

Range多与for循环配合。

l1 = ['无sir', 'alex', '太白', 100, 5]

for i in l1:
    print(l1.index(i))

for i in range(len(l1)):
    print(i)

练习:

1.如下:

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
a = len(li)
print(a)
li.append('seven')
print(li)
li.insert(0, 'Tony')
print(li)
li[1] = 'Kelly'
print(li)
l2 = [1, "a", 3, 4, "heart"]
li.extend(l2)
print(li)
s = "qwert"
li.extend(s)
print(li)
li.remove('ritian')
print(li)
ret = li.pop(1)
print(li, ret)
del li[1:4]
print(li)
li.reverse()
print(li)
print(li.count('alex'))

2.如下:

li = [1, 3, 2, "a", 4, "b", 5, "c"]
l1 = li[0:3]
print(l1)
l2 = li[3:6]
print(l2)
l3 = li[::2]
print(l3)
l4 = li[1:-1:2]
print(l4)
l5 = li[-1]
print(l5)
l6 = li[-3:-8:-2]
print(l6)

3.如下:

lis = [2, 3, "]], 89], "ab", "adv"]
lis[3][2][1][0] = lis[3][2][1][0].upper()
print(lis)
lis[1] = '
lis[3][2][1][1] = '
print(lis)
lis[3][2][1][2]=101
print(lis)

4.请⽤代码实现:

li = ["alex", "wusir", "taibai"] 利⽤下划线将列表的每⼀个元素拼接成字符串"alex_wusir_taibai"
li = ["alex", "wusir", "taibai"]
li='_'.join(li)
print(li[0]+'_'+li[1]+'_'+li[2])
print(li)

5.利⽤for循环和range打印出下⾯列表的索引。

 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
for i in range(0,len(li)):
    print(i)

6.利⽤for循环和range找出100以内所有的偶数并将这些偶数插⼊到⼀个新列表中.

l = []
for i in range(1, 101):
    if i % 2 == 0:
        l.append(i)
print(l)

7.利⽤for循环和range 找出50以内能被3整除的数,并将这些数插⼊到⼀个新列表中.

l = []
for i in range(1, 51):
    if i % 3 == 0:
        l.append(i)
print(l)

8.利⽤for循环和range从100~1,倒序打印。

for i in range(100, 0, -1):
    print(i)

9.利⽤for循环和range从100~10,倒序将所有的偶数添加到⼀个新列表中,然后对列 表的元素进⾏筛选,将能被4整除的数留下来。

l = []
for i in range(100, 9, -1):
    if i % 2 == 0:
        l.append(i)
for a in l:
    if a % 4 != 0:
        l.remove(a)
print(l)

10.利⽤for循环和range,将1-30的数字⼀次添加到⼀个列表中,并循环这个列表,将 能被3整除的数改成*。

l = []
for i in range(1, 31):
    if i % 3 == 0:
        i = '*'
    l.append(i)
print(l)

11.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾 的所有元素,并添加到⼀个新列表中,最后循环打印这个新列表。 li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]

l=[]
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
for i in range(0,len(li)):
    li[i]=li[i].strip()
    if li[i][0]=='A' or li[i][0]=='a':
        if li[i][len(li[i])-1]=='c':
            l.append(li[i])
for i in l:
    print(i)

第二种方法:

l=[]
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
for i in li:
    i=i.strip()
    if i[0]=='a' or i[0]=='A':
        if i[len(i)-1]=='c':
            l.append(i)
for i in l:
    print(i)

12.开发敏感词语过滤程序,提示⽤户输⼊评论内容,如果⽤户输⼊的内容中包含特殊的字符: 敏感词列表li = ["苍⽼师", "东京热", "武藤兰", "波多野结⾐"]则将⽤户输⼊的内容中的敏感词汇替换成等长度的*(苍⽼师就替换***),并添加到⼀个列表中;如果⽤户输⼊的内容没有敏感词汇,则直接添加到上述的列表中。

l = []
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
a = input('请输入评论:')
for i in li:
    if i in a:
        a = a.replace(i, '*' * len(i))
l.append(a)
print(l)

最新文章

  1. c#读写xml文件
  2. Java部分总结图片版(已经加上原图链接下载!!!)
  3. 用ioctl获取无线网络信息 /usr//include/linux/wireless.h
  4. php 连接字符串. ZEND_ASSIGN_CONCAT/ZEND_CONCAT原理
  5. 深入理解Java虚拟机 - Java体系
  6. 有关UIImageView+AFNetworking 下载图片的线程问题
  7. bzoj1188
  8. poj 1149 pigs(最大流)
  9. flex 错误信息类型及解决方法
  10. (中等) HDU 1542 Atlantis,扫描线。
  11. C#三步实现标准事件处理程序
  12. Java连接MySQL数据库增删改查通用方法
  13. 远程SCP报错,报22号口错误
  14. sys 模块的应用
  15. js如何获取url参数
  16. 转载 线程池 异步I/O线程 <第三篇>
  17. 理解TIME_WAIT
  18. 联想G510安装win7系统
  19. PHP使用数据库的并发问题
  20. 棋盘游戏 HDU1281

热门文章

  1. Git 命令 操作
  2. Linux基础之-正则表达式(grep,sed,awk)
  3. VC编程操作word2010生成表格
  4. 数据结构----线性表顺序和链式结构的使用(c)
  5. 【Python】directory字典类型
  6. 微信小程序开发前期准备
  7. redis在linux设置密码
  8. ubuntu配置(娱乐工作)
  9. 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果
  10. v1.0.2-2017.04.26