首页 > 其他分享 >day 06-2 数据类型(列表)

day 06-2 数据类型(列表)

时间:2024-04-14 14:23:55浏览次数:15  
标签:张译 06 name 数据类型 赵又廷 冯绍峰 user print day

1.3 公共功能

1.相加,两个列表相加获取一个新的列表

data = ["张译","冯绍峰"] +["赵又廷","林更新"]
print (data) # ['张译', '冯绍峰', '赵又廷', '林更新']

v1 = ["赵又廷","林更新"]
v2 = ["张译","冯绍峰"]
v3 = v1 + v2
print (v3)  # ['赵又廷', '林更新', '张译', '冯绍峰']

2.相乘,列表*整型,将列表中的元素再创建N份并生成一个新的列表

data = ["张译","冯绍峰"] * 2
print (data) # ['张译', '冯绍峰', '张译', '冯绍峰']

v1 = ["赵又廷","林更新"]
v2 = v1 *2

print (v1)  # ['赵又廷', '林更新']
print (v2)  # ['赵又廷', '林更新', '赵又廷', '林更新']

3.运算符in包含,由于列表内部是由多个元素组成,可以通过in判断元素是否在列表中

user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
v1 = '张译' in user_name
v2 = 'AA' in user_name
v3 = '冯绍峰' not in user_name
print(v1 , v2 ,v3) # True False False

user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
if 'aa' in user_name:
    user_name.remove('aa')
    print("在,已删除")
else :
    print ('不在')
# 在,已删除

# 案例
user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
if 'aa' in user_name:
    index = user_name.index('aa') # 获取索引
    user_name.pop(index) # 根据索引删除
print(user_name) # ['张译', '冯绍峰', '赵又廷', '林更新', '刘烨', '1']

# 敏感词替换 
#风雨中前行,是为了迎接更广阔的晴空,是为了拥抱更灿烂的阳光。让我们共同踏上这段充满挑战与机遇的征途,以坚韧的脚步踏过风雨,以无畏的精神迎接挑战,共筑一部属于我们自己的、风雨中砥砺前行的人生史诗。
v1 = input('请输入您的内容:')
ban_list = ["风",'灿烂','的']
for char in ban_list :
    v1 = v1.replace(char,"**")
print (v1) 

注意:列表检查元素是否存在时,是采用逐一比较的方式,效率会比较低。

4.获取长度

user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
print(len(user_name)) # 7

5.索引:一个元素的操作

# 读
user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
print(user_name[0]) # 张译
print(user_name[1]) # 冯绍峰
print(user_name[-1]) # aa
print(user_name[10]) # 如果索引不存在会报错

# 改
user_name = ["张译","冯绍峰","赵又廷","林更新","刘烨","1","aa"]
user_name[0] = "孙俪"
print (user_name) # ['孙俪', '冯绍峰', '赵又廷', '林更新', '刘烨', '1', 'aa']
 
# 删
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
del user_name[0]
del user_name[-1]
print(user_name)  # ['冯绍峰', '赵又廷', '林更新', '刘烨', '1']
# 删除补充
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
user_name.pop(1) # 根据索引删除
v1 = user_name.pop(1) # 得到删除的值
user_name.remove('林更新') # 根据值删除

注意:超出索引范围会报错。
提示:由于字符串是不可变类型,所以他只有索引读的功能,而列表可以进行读、改、删

6.切片:多个元素的操作(很少用到)

# 读
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
print(user_name[0:2]) # 前取后不取,['张译', '冯绍峰']
print(user_name[3:]) # ['林更新', '刘烨', '1', 'aa']
print(user_name[0:-1]) # ['张译', '冯绍峰', '赵又廷', '林更新', '刘烨', '1']

# 改
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
user_name[0:2] = ['11','22','23','24'] # 将前两个替换
print (user_name) #['11', '22', '23', '24', '赵又廷', '林更新', '刘烨', '1', 'aa']

user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
user_name[2:] = ['11','22','23','24'] 
print (user_name) # ['张译', '冯绍峰', '11', '22', '23', '24']

user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
user_name[200:] = ['11','22','23','24']  # 如果索引超过列表,替换的内容会直接加在最后面
print (user_name) # ['张译', '冯绍峰', '11', '22', '23', '24']

# 删
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
del user_name[2:]
print (user_name) # ['张译', '冯绍峰']

7.步长

user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
print(user_name[1:5:2]) # ['冯绍峰', '林更新']
print(user_name[0::2]) # ['张译', '赵又廷', '刘烨', 'aa']
print(user_name[1::3]) # ['冯绍峰', '刘烨']
print(user_name[4:1:-1]) #['刘烨', '林更新', '赵又廷']

# 案例一 实现列表的反转
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
print(user_name[::-1]) # ['aa', '1', '刘烨', '林更新', '赵又廷', '冯绍峰', '张译']

# 案例二 实现列表的反转
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
user_name.reverse()
print(user_name)  #  ['aa', '1', '刘烨', '林更新', '赵又廷', '冯绍峰', '张译']

8.for循环

user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
for char in user_name:
    print(char)
# 张译
# 冯绍峰
# 赵又廷
# 林更新
# 刘烨
# 1
# aa
user_name = ["张译", "冯绍峰", "赵又廷", "林更新", "刘烨", "1", "aa"]
for char in range(len(user_name)):
    item = user_name[char]  # 使用索引直接访问列表元素
    print(item)
# 张译
# 冯绍峰
# 赵又廷
# 林更新
# 刘烨
# 1
# aa
# 错误示范
# 案例,删除姓张的
# 千万不能在循环的过程中,边循环获取列别的数据,边删除列表的数据
user_name = ["张译", "冯绍峰", "张又廷", "张更新", "张烨",'孟子义','张三','张思']
for char in user_name:
    if char.startswith("张"):
        user_name.remove(char)
print (user_name) # ['冯绍峰', '张更新', '孟子义', '张思']

# 正确方式,倒着删除
user_name = ["张译", "冯绍峰", "张又廷", "张更新", "张烨",'孟子义','张三','张思']
for index in range(len(user_name)-1,-1,-1):
    item = user_name[index]
    if item.startswith("张"):
        user_name.remove(item)
print (user_name) #['冯绍峰', '孟子义']

1.4 转换

  • int和bool不能转换
  • str转换:很少用到
name = "孟子义"
va = list(name)
print (va) # ['孟', '子', '义']
  • 元组
v1 = (11,22,3,445,6) # 元组
v2 = list(v1) 
print(v2) # [11, 22, 3, 445, 6]
  • 集合
v1 = {"张译", "冯绍峰", "赵又廷"} # 集合
v2 = list(v1)
print(v2) # ['张译', '赵又廷', '冯绍峰']

1.5 其他(嵌套)

列表属于容器,内部可以存放各种数据,所以他也支持列表的嵌套

name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]

对于嵌套的值,可以根据之前学习的索引知识来学习

name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]
print(name[0]) #  孟子义
print(name[1]) # ['张三', '李四', '王五']
print(name[0][2]) # 义
print(name[1][-1]) # 王五
print(name[1][-2]) # 李四

# 添加
name.append(666)
print (name) # ['孟子义', ['张三', '李四', '王五'], True, [11, 22, [45, 34], 98], 'linzai', 666]

name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]
name[1].append(666)
print (name) # ['孟子义', ['张三', '李四', '王五', 666], True, [11, 22, [45, 34], 98], 'linzai']

# 删除
name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]
del name[-2]
print (name) #['孟子义', ['张三', '李四', '王五'], True, 'linzai']

# 修改
name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]
name[-2] = "加油"
print (name) # ['孟子义', ['张三', '李四', '王五'], True, '加油', 'linzai']

name = ["孟子义",["张三","李四","王五"],True,[11,22,[45,34],98],"linzai"]
name[2][0:2] = "come"
print (name)

标签:张译,06,name,数据类型,赵又廷,冯绍峰,user,print,day
From: https://www.cnblogs.com/linzaidehouhuayuan/p/18134101

相关文章

  • day 06-3 数据类型(列表)
    1.6阶段作业1.写代码,有如下列表,按照要求实现每一个功能li=["linzai",'asff','wftthyy','kihfng',"张三四"]#计算列表的长度并输出data=len(li)#print(len(li))print(data)#5#列表中追加元素"seven"#列表中追加元素"seven",并输出添......
  • [题解]SP10606 Balanced Numbers
    SP10606BalancedNumbers关于优化方式的说明详见数位dp例题及详解-下。SPOJ注册不上所以暂时无法提交w,但是3份代码与正解对拍没有问题。使用\(vis[0\sim9]\)表示\(0\sim9\)的访问情况,\(sta[0\sim9]\)表示\(0\sim9\)填写个数的奇偶性(奇数为\(1\),偶数为\(0\))。暴搜先打出来,......
  • SF506DS-ASEMI开关电源二极管SF506DS
    编辑:llSF506DS-ASEMI开关电源二极管SF506DS型号:SF506DS品牌:ASEMI封装:TO-252最大平均正向电流(IF):5A最大循环峰值反向电压(VRRM):600V最大正向电压(VF):1.70V工作温度:-55°C~150°C反向恢复时间:35ns芯片个数:1芯片尺寸:72mil正向浪涌电流(IFMS):150ASF506DS特性:恢复时间短性能稳......
  • 洛谷题单指南-数学基础问题-P1069 [NOIP2009 普及组] 细胞分裂
    原题链接:https://www.luogu.com.cn/problem/P1069题意解读:一个数s代表细胞经过一天分裂的个数,则经过t天后个数为st,要计算经过几天后能整除m1m2,也就是st%m1m2==0,有多个s,要计算天数最少就可以满足条件的。解题思路:直接求st%m1m2显然不可取,会超出整数最大范围,高精度也不是好......
  • day04
    HelloWorld1.随便新建一个文件夹,存放代码2.新建一个java文件后缀名为.javahello.java3.编写代码publicclasshello{ publicstaticvoidmain(String[]args){'快捷方法输入psvm' System.out.print("hello,world");'快捷方法输入sop' }4.编写javacjava文件,生成一个......
  • C语言10-指针(多级指针、空指针、野指针),自定义数据类型(枚举enum、结构体struct)
    第12章指针pointer12.6多级指针指向指针的指针称为多级指针eg:int*ptr1=# int**ptr2=&ptr1; int***ptr3=&ptr2;12.7空指针应用场景:1.暂时不确定指向的指针,可以在定义的时候先赋值为NULL2.有些指针函数,如果内部出现异常无法成功实现功能,可以返回NUL......
  • 4.数据类型
    lua有8中数据类型(使用type()函数可以查看变量数据类型)nil:表示一个无效值,相当于c中NULLboolean:两个值true,false(想当与c中bool)number:双精度类型的实浮点string:字符串(形式:str="我是字符串,我不能跨行"或者str='我是字符串,我不能跨行'或者str=[[......
  • P10064 [SNOI2024] 公交线路
    显然只需要考虑叶子结点的连边情况,设一个结点\(u\)仅经过一条路径能到达的点的集合为\(S_x\),则条件等价于对于任意两个叶子结点\(x,y\),\(S_x\)与\(S_y\)有交.由树的性质,所有\(S_x\)的交集非空(否则存在环),于是交集为一个连通块,上点边容斥.于是问题转化为两部分:求所有\(......
  • day2-Python训练营
    1.ClassOne1.如何正确关闭一个Vmware中的虚拟机2.为Ubuntu安装一些软件step1:openterminal或者快捷键ctrl+shift+T打开终端,然后ping一下,看网络是否连通。step2:sudoaptupdate,判断安装源(默认是美国的源,类似于软件商店)是否连通;step3:安装两个软件,ssh和vim,sudoaptin......
  • java_基础01_数据类型和变量
     1.注释//单行注释/*多行注释*//**javaDoc:文档注释/***@Descriptionhello*//***_ooOoo_*o8888888o*88"."88*......