首页 > 其他分享 >9.29学习日志

9.29学习日志

时间:2024-09-29 16:50:49浏览次数:8  
标签:10 20 9.29 元素 列表 学习 x2 print 日志

一.Python列表(list)

Python 支持多种复合数据类型,可将不同值组合在一起。最常用的**列表** ,是用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同

# 列表,是一种复合数据(数据容器)
x = [10,20,3.14,10+20j,True,"a"]
print(x)

1、访问列表中的值

1.1 索引

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

1.2 反向索引

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

1.3 切片索引

使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符

注意:切片是浅拷贝操作

# 取列表中的数据,列表的索引(下标,index)不能超出索引范围(越界)
y1 = x[0]
y2 = x[-1]
y3 = x[5]
print(y1,y2,y3,sep="-")
print(len(x))

# 循环打印列表中的元素
x = [100,200,50,23,1222,55,44,88,9,6,44,41,5,23,5,8]
for i in range(len(x)):
    print(x[i],end=" ")
print(f"\n{len(x)}")
for el in x:
    print(x,end=" ")
print("\n")

# 切片索引
x = [10,20,30,40,50,60,70]
x2 = x[3:5]
print("x2:",x2)
x3 =x[2:-2]# 从左往右取数据,从下标2对应的元素开始取到下标为-2的数据。
print("x3:",x3)
x4 = x[-1:4]# 如果切片的范围没能取到任何元素,就会得到一个空的列表(不会报错)
print("x4:",x4)
x5 = x[5:100]# 如果切片范围超过原列表范围,超过的范围同样为空(不会报错)
print("x5:",x5)
x6 = x[:4]# 省略前面的,表示从零开始
print("x6:",x6)
x7 = x[4:]# 省略后面的,表示到len()结束
print("x7:",x7)
x8 = x[:-1]# 表示空列表
print("x8:",x8)
x9 = x[-1:]# 表示取最后一个元素组成列表
print("x9:",x9)
x10 = x[1:7:2]# 步长为2
print("x10:",x10)
x11 = x[:7:2]# 0,2,4,6
print("x11:",x11)
x12 = x[1:5:-1] # 不行,取的为空。一般步长为负数前面两个都不填。
print(x12)
# 把一个列表反转
x13 = x[::-1]

对于浅拷贝与深拷贝:

# 切片生成的是一个新列表。
# 列表中切片的元素是一种浅拷贝过来的元素,浅切片
# 切片后,新列表中的元素和原列表中切片范围的元素“长得一样”,是通过浅拷贝得到的。
x = [[2,3],10,20,30,40,50,60]
x2 = x[:5]
print("x",x)
print("x2:",x2)
print(id(x),id(x2))# x和x2不是同一个id
print(id(x[0]),id(x2[0]))# 指向同一个引用
print(id(x[1]),id(x2[1]))
x2[0][0] = 1
print("x2的下标0对应的列表元素被修改后的x2:",x2)
print("x2的下标0对应的列表元素被修改后的x:",x)
# 深拷贝
x = [[2,3],10,20,30,40,50,60]
x3 = copy.deepcopy(x[:5])
print(id(x),id(x3))# x和x3不是同一个id
print(id(x[0]),id(x3[0]))# 不指向同一个引用
x3[0][0] = 1
print("x3的下标0对应的列表元素被修改后的x3:",x3)
print("x3的下标0对应的列表元素被修改后的x:",x)
# 浅拷贝
x = [[2,3],10,20,30,40,50,60]
x4 = copy.copy(x[:5])
print(id(x),id(x4))# x和x4不是同一个id

2、更新列表

对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项

# 更新列表(修改列表)
x = [10,20,30,40,50]
print(x[0])
x[0] = 100# 通过下标修改列表中的数据
print(x)
print(x[0])

# 添加元素到列表的末尾,一次只能加一个元素。
x.append(60)
x.append(70)
print(x)

3、删除列表元素

 可以使用 del 语句来删除列表的的元素

# 删除列表的元素
x = [10,20,30,40,50]
x[2] = None
# del x[2]
# del x # 删除变量x,释放空间
# x = []# 更新变量
print(x)
print(len(x))
print(x[2])

4、列表操作符

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x)1 2 3迭代
# 列表运算
x = [10,20,30,40]
# x2 = x+20 # 错误,不能相加
x2 = x + [10,20,30]
print(x2)
x3 = x*2
print(x3)# *n表示列表重复n次,n为整数,n为0是得到空列表
#
x = [[10,20],[20,30],40]
x2 = [10,20]
print(x[2])
print(x[0],x2)
print(id(x[0]),id(x2))
re = x2 in x# x2中保存的数据在x中有没有“一样”(数据一样就行不一定非得是同一个元素)的数据
print(re)

# 笔试题
x = [10,20,30,40]
# r = range(len(x))# 数列,也是数据容器
for i in range(len(x)):
    # print(i,x[i])
    #x[i] = i
    temp = x[i]
    del x[i]
    x.append(temp)
print(x)

5、嵌套列表

使用嵌套列表即在列表里创建其它列表

# 嵌套列表
x = [1,2,3,4]
x2 = ["a","b","c"]
x3 = [x,x2]
print(x3)
print(x3[0][3])

6、Python列表常用API

操作列表的函数

序号函数
1len(list)列表元素个数
2max(list)返回列表元素最大值
3min(list)返回列表元素最小值
4list(seq)将可迭代数据转换为列表,常见官方可迭代数据:列表,序列(range),字符串,元组
# 列表常用api
x = [10,20,30,40]
print(len(x))
print(max(x))
print(min(x))

re = range(20)
re = 'hello'
re = (10,20,30,40)
x= list(re)
print(x)

列表的方法

序号方法
1list.append(obj)在列表末尾添加新的对象
2list.count(obj)统计某个元素在列表中出现的次数
3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)将对象插入列表
6list.pop(index=-1)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)移除列表中某个值的第一个匹配项
8list.reverse()反向列表中元素
9list.sort( key=None, reverse=False)对原列表进行排序: x.sort(key=lambda a:abs(a-3), reverse=False)
10list.clear()清空列表
11list.copy()复制列表

 

x = [[10,20],10,20,[10,20]]
n = x.count(10)# 查看x列表中的元素有几个是10,不看元素内部。
print(n)
print(x.count([10,20]))

x = [10,20,30,40]
x2 = [10,1,2,3,4]
re = x.extend(x2)# 会直接修改x列表,.extend()括号中只能填可迭代数据
print(x)

x = [10,20,30]
re = x.pop(1)# 移除指定下标对应的元素,返回这个元素,不填时默认移除最后一个元素
# 移除指定下标不能越界
print(re)
print(x)

x = [10,20,10,30,None,10]
re = x.remove(None)# 不返回数据,不能越界,不然会报错
print(re,x)

x = [10,20,30]
x.clear()# 不改变id
print(x)
x = []# 重新开辟空间
print(x)

x = [10,20,30]
x2 = x.copy()
print("x:",x)
print("x2:",x)
print(x is x2)
print(id(x),id(x2))
x2[0] = 100
print(x,x2)
x.reverse()
print(x)

x = [1,8,6,-9,2,7,3,4]
x.sort(key=lambda a:a**2)
print(x)

二.Python元组(tuple)

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号 ( ),列表使用方括号 [ ]。

1、创建元组

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

1.1 存放相同类型的数据

tup1 = (1, 2, 3, 4, 5 )

1.2 存放不同类型的数据

tup2 = ( 'hqyj', 2004)

1.3 不需要括号也可以

tup3 = "a", "b", "c", "d"

1.4 只包含一个元素

元组中只包含一个元素时,需要在元素后面添加逗号 ,否则括号会被当作运算符使用:

x = (10,"hello",False,None,[10,20])
print(x)

x = 10,20,50,"hello",True
print(x)

x = (10)# 是括号运算符,后面加逗号才是元组
print(x)
x = (10,)# 表示只有一个元素的元组
print(x)
x = 20,
print(x)
a = 55
x = a,
print(x)

2、访问元组

元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。  

# 元组也是一种数据容器,但是只能取,不能增删改
x = 10,20,30,[10,20]
print(id(x[3]))
print(x)
print(x[2])
print(x[-1])
print(x[1:])
x[3][0] = 30# 可以改列表内部元素但是不能改列表这个元素
print(id(x[3]))
print(x)

a,b,c,d = x# 相当于a = x[0],b = x[1],c = x[2],d = x[3]
print(a,b,c)# 即多变量赋值

3、修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz') 

# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

# 以下修改元组元素操作是非法的。
# tup1[0] = 100

标签:10,20,9.29,元素,列表,学习,x2,print,日志
From: https://blog.csdn.net/m0_74998557/article/details/142629089

相关文章

  • 9.29Python基础-列表、元组
    Python列表(list)1.列表的定义和初始化列表是一种复合数据类型,可以包含不同类型的元素。x=[10,20,3.14,10+2j,True,False,"hqyj"]print(x)2.访问列表中的值2.1索引列表的索引从0开始,可以正向或反向访问。y1=x[0]#访问第一个元素y2=x[-1]#访......
  • 【问题解决】win10日志错误:创建 TLS 客户端凭据时发生致命错误。 内部错误状态为 1001
    背景最近win10死机了一次,查看事件管理器发现有大量的报错:“创建TLS客户端凭据时发生致命错误。内部错误状态为10013”,如图:解决win键搜索internet选项确定。原因参考错误:“创建TLS客户端凭据时发生致命错误。内部错误状态为10013”的说法是win10对TLSv3.0兼容性......
  • Markdown学习
    问题一掌握的内容标题段落与换行粗体与斜体列表引用未掌握的内容代码链接图片问题二通过利用AI我学到了的提示词有目标背景指导要求禁忌输出格式示例评估模板目标:撰写一篇(主题)的文章背景:考虑到(时代/地区/主要人物/主要研究方向)指导:文章风格/字数/......
  • 2024-2025-1 20241314 《计算机基础与程序设计》第一周学习总结
    作业信息作业所属课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)作业要求<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)作业的目标课程概论工业革命与浪潮之巅信息与信息安全计算......
  • 2024-2025-1 20241415 《计算机基础与程序设计》第1周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标阅读浏览教材《计算机科学概论》,加深对计算机科学的理解,提高自学能力,......
  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第1周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体方面>作业正文...本博客链接教材学习内容总结计算机科学概论第......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第一周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标让我对本周所学了解的更为深刻,并总结不足作业正文...本博客链接教材学习内容总结1.学习了第一......
  • 花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?
      我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~因为只要学得好,工作两个多月就能赚回学费,而且大部分培训班也会有就业支持,比如老师给推荐或者定期的招聘会…先说一下我自己,很喜欢......
  • 多线程学习
    一.认识线程(Thread)1.线程是什么定义:线程是一个轻量级的执行流,它代表了程序执行的一个路径。每个线程都有自己的程序计数器、栈和局部变量,但线程之间可以共享同一个进程的全局变量和堆。主线程:在Java程序中,main()方法所运行的线程被称为主线程(MainThread)。当你启动......
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.5-2.
    目录第四门课卷积神经网络(ConvolutionalNeuralNetworks)第二周深度卷积网络:实例探究(Deepconvolutionalmodels:casestudies)2.5网络中的网络以及1×1卷积(NetworkinNetworkand1×1convolutions)2.6谷歌Inception网络简介(Inceptionnetworkmotivation)......