04、python的基础-->列表跟元组
一、列表list
1、列表的新增元素(三种方法)
>>>第1种方法(append 增加到最后):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin']
li.append('小鸡')
li.append(1)
print(li)
例:新增名单(重复输入名单,当输入Q时停止输入)
li = ['Peter','Henrry','Wode','鸭子','xiaoxin']
while 1:
l1 = input('请输入姓名:')
if l1.upper() == 'Q':
break
li.append(l1)
print(li)
>>>第2种方法(insert 插入到指定位置):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin']
li.insert(4,'小鸡')
print(li)
>>>第3种方法(extend 迭代插入(分解元素插入最后)-->>int不能迭代,列表可以):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin']
li.extend('小王')
li.extend([1,2,3]) #数字列表直接分解到最小元素
print(li)
2、列表的删除元素(四种方法)
>>>第1种方法:(pop 按照索引删除元素,注:pop有返回值,可以看删除了什么元素,不填索引,默认删除最后一个元素)
li = ['Peter','Henrry','Wode','鸭子','xiaoxin']
name = li.pop(4)
name = li.pop() # 默认删除最后一个元素
print(name,li)
>>>第2种方法:(remove 按照元素去删除)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
li.remove('鸭子')
print(li)
>>>第3种方法:(clear 清空列表,剩下一个空列表)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
li.clear()
print(li)
>>>第4种方法:(del删除列表)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
del li
print(li)
#衍生 切片删除
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
del li[0:3]
print(li)
3、列表的修改(2种方法)
>>>第1种方法:(根据索引进行修改)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
li[4] = '小凯'
print(li)
>>>第2种方法:(根据切片修改(修改为最小元素))
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
li[0:2] = '小哥哥'
print(li)
衍生(根据列表修改,修改为列表元素)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
li[0:2] = ['小鸡','大鹅','']
print(li)
4、查看列表元素
>>>1、利用for循环:
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
for i in li:
print(i)
>>>2、切片查看:
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
print(li[0:2])
>>>3、公共方法
1、查看元素数量
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
l = len(li)
print(l)
2、查看元素出现次数
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
num = li.count('鸭子')
print(num)
3、查看元素索引--->index,查无报错
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
print(li.index('鸭子'))
5、列表的排序
li = [2,1,4,6,7,8,9,]
li.sort() #默认从小到大
print(li)
li.sort(reverse=True) #从大到小
print(li)
li.reverse() #元素翻转
print(li)
6、列表的嵌套
li = ['liming','大王','萧山水','鸭子',['peter','alex',88],23]
print(li[1][1]) #找到山
s = li[0].capitalize() #找到第一个元素,首字母变大写
li[0] = s
print(li)
li[3]=li[3].replace('子','哥哥') #找到鸭子的子改成哥哥
print(li)
li[4][0] =li[4][0].upper() #找到peter进行大写之后放回原处
print(li)
s = li[4][2] + 12 #找到88变成100,放回去(方法1)
li[4][2] = s
print(li)
li[4][2] = 100 #找到88变成100,放回去(方法2)
print(li)
二、元组-->只读列表,可循环查询,可切片(元组元素不能改,元素列表可能可以改)
tu = [1,2,3,[1,2,3,'xiaomao'],'鸭子','peter']
print(tu[2]) #可读
print(tu[2:4]) #可切片
for i in tu: #可循环
print(i)
tu[3][3] = tu[3][3].upper() #可改元祖中列表的元素
print(tu)
tu[3].append('小鸡') #元祖中列表增加元素
print(tu)
1、可迭代 join
s = 'peter'
s1 = '~'.join(s) #可迭代(p~e~t~e~r),int 跟bool 值不可作为迭代元素
print(s1)
2、列表---> 字符串
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin']
s = '/'.join(li)
print(s)
3、range 数字列表
for i in range(2,101): #自定义数字顺序长度
print(i)
for i in range(10): #自定义数字长度
print(i)
for i in range(1,10,2): #自定义数字、步长
print(i)
for i in range(10,0,-1): #逆序
print(i)
for i in range(0,10,-1): #不报错不输出
print(i)
三、作业题
1、输出列表各个元素,遇到子列表照样照样输出子列表元素
#方法1:
li =[1,2,3,[1,2,3,'xiaomao'],'鸭子','peter']
for i in li:
if type(i) == list:
for k in i:
print(k)
else:
print(i)
#方法2:
li =[1,2,3,[1,2,3,'xiaomao'],'鸭子','peter']
for i in range(len(li)):
if type(li[i]) == list:
for j in li[i]:
print(j)
else:print(li[i])
2、查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
#方法1:
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']
b=[]
for i in li:
s=i.strip()
if (s.startswith("A")or s.startswith("a"))and s.endswith("c"):
b.append(s)
for x in b:
print(x)
#方法2
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']
b=[]
for i in li:
s=i.strip()
if s[0].upper() == 'A' and s[-1] == 'c':
b.append(s)
for x in b:
print(x)
3、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
#敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
# 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
# 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
li=["苍老师","东京热","武藤兰","波多野结衣"]
new_li= []
info = input("评论") # 苍老师,东京热 法律框架第三
for i in li:
if i in info:
l = len(i)
info=info.replace(i,'*'*l)
new_li.append(info)
print(new_li)
04、python的基础-->列表跟元组的更多相关文章
- Python数据基础--列表、元组、字典、函数
一.数据结构 列表(List)和元组 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内 ...
- Python基础------列表,元组的调用方法
Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...
- Python基础-列表、元组、字典、字符串
Python基础-列表.元组.字典.字符串 多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...
- python 变量、列表、元组、字典
python 变量.列表.元组.字典 1.python 变量赋值 2.ptython 列表 3.python 元组 4.python 字典 1. Python变量赋值 1.1变量的命名规 ...
- Python 学习笔记(1)Python容器:列表、元组、字典与集合
Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者 list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list( ...
- Python基础-列表_元组_字典_集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python自动化 【第二篇】:Python基础-列表、元组、字典
本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库, ...
- Python基础--列表、元组
一.什么是列表.元组 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见 ...
- Python基础——列表、元组操作
列表.元组操作 列表: 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ...
随机推荐
- Linux操作系统(三)_部署JDK
一.通过tar.gz压缩包安装 1.在usr目录下创建java目录 cd usr mkdir java 2.用rz命令上传tar.gz安装包到java目录 3.解压tar.gz安装包到当前目录 tar ...
- Gentoo 搭遗
安装 app-portage/gentoolkit 使用如下方式,可查询某个被包安装的文件列表,可以筛选文件类型 equey files [--filter=doc] <包名称> emer ...
- 洛谷 P1972 [SDOI2009]HH的项链——树状数组
先上一波题目 https://www.luogu.org/problem/P1972 这道题是询问区间内不同数的个数 明显不是正常的数据结构能够维护的 首先考虑 因为对于若干个询问的区间[l,r],如 ...
- Spring Cloud 使用Spring Cloud Loadbalancer访问服务地址
获取服务地址 使用的EurekaClient : getNextServerFromEureka() 使用的DiscoveryClient: getInstances() Load Balancer ...
- ubantu下关于linux命令合集
ubantu下linux的命令与操作 1.熟悉linux目录是学习linux非常必要的第一步 linux目录结构: linux目录: /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目 ...
- Unrecognized SSL message, plaintext connection--SSLSocket 代理服务器连接
虽然java代码 URL.openconnect(proxy);已经实现了https客户端通过代理连接服务器 但个人在使用socket https代理http://www.cnblogs.com/h ...
- java中wait()和sleep()的区别
前言 以前只知道一个结论,但是没法理解,现在水平上来了,自己代码中写了一个验证的方法. 1.先上结论:wait()会释放持有的锁,sleep()不会释放持有的锁 2.验证:看代码运行结果. packa ...
- PCA revisit
都知道PCA可以做降维,那它为什么可以降维,究竟是怎么降维的呢? 1. 为什么我们要降维? 我们的样本数据好好的,为什么要去做降维,第一个要想清楚这个问题. 也许你是要训练一个分类器,觉得当前特征维度 ...
- 【Java学习笔记】百度面试问题回顾(一)
今天回顾了部分百度面试时被问到的问题: 1.常见的包装类有哪些,他们与基本类型的区别,有哪些方法? Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很 ...
- C++的命名空间
作用:防止类,函数,变量等之间重名,比如在代码合并的时候 假如两个头文件中均定义了类Cal,而调用程序同时包含了两个头文件,当在定义Cal c时,程序会报类型重定义的错误.这种问题可以通过命名空间来解 ...