学习python已经一周了,本来准备在周日把这周学习的知识总结一下,耽误了一下。
恰好今天阳光明媚,索性总结一下。
看了一个行星期的视频,我看的是老男孩的培训课程。在b站上面找到的,个人感觉还不错。这周收获不错,自己根据学习的知识写了两个小程序,还是挺有成就感的。
这周学习的主要是 列表,元组以及重要的字典。有很多共同之处。
首先是列表----list
list列表,python的列表创建比较简单。直接创建变量接收内容。比如 a = [1,2,3,5]就是一个列表。而列表中有关键的东西——索引。索引我自己觉得就是列表中各个元素的位置,是有顺序之分的。索引是从0开始的,比如以上列表,共有4个元素,所以索引是 0,1,2,3 。0 对应的元素是1 ,1对应的元素是2 。索引的作用是很大的,在方法中会用到。
list的几种重要的用处--增丶删丶改丶查
1,查
a = [1,2,3,5]
print(a[0]) 打印在第0位上的元素,用于查看位置上的元素。
如果知道元素位置,不知道元素在那个位置,这个时候就用到了 index方法
比如我们想知道5在哪个位置。
print( a.index(5)) 就打印出了5的索引
另外重要的内容就是--切片
a = [1,2,3,5]
print(a[0:])
结果会打印a列表中的全部元素,因为a[0:] 代表a[0],a[1]......一直到最后一个 没有给冒号右边赋值,就是默认到最后。我感觉和数学中的[0,无穷大)一样,当超过a中的最大的索引之后,就没有元素了,所以就不会再增加了。
print(a[0:4])
结果是也是打印全部元素。很烦,怎么又是全部元素,不慌,听我说。首先,a[0:4}表示的是 a[0],a[1],a[2],a[3] 没有a[4]
个人感觉就和数学中的[0,4)一样,左边能取到,右边取不到。 所以正好能取到全部元素
print(a[0:-1])
a[0:-1] 是存在的,意思是从第一个到倒数第二个的元素 a[0: ]表示从第一个到最后一个元素。
print(a[0,-1,2])
2是步长,如果没有赋值,默认就是1,意思是一个数与另外一个数的间隔为1.以上是打印从第一个元素到倒数第二个元素之间,取一个,隔一个不取 结果>>>1,3
2,增
增主要有三种方法 append() insert() extend()
append() 在原本的列表最后直接添加元素
a.append(6)
print(a)
>>>1,2,3,5,6
insert() 有两个传入参数, 一个是插入位置,一个是插入的值
a.insert(0,0)
>>>0,1,2,3,5,6
表示在第一个位置插入值为1的元素,如果要插入字符,记得加“”
extend()
b=[7,8,9]
a = [1,2,3,5]
a.extend(b)
print(a)
>>> 1,2,3,5,7,8,9
直接把b的元素加在a列表最后一个元素后面,并且,b列表并没有发生变化
3.删
主要四种方法
a = [1,2,3,5]
remove() pop() del() clear()
del 大家都知道 delete 删除
del a 就会把a列表删除 不存在了
del (a[1]) 删除a[1]
remove()删除元素
a.remove(1) 直接删除元素1 不是删除位置1上的元素哦
pop()不紧会删除元素,还会返回要删除的元素,相当于拿列表中的元素,不还回的那种
用一个变量接收pop()返回的值
c = a.pop(0) 注意这里填入的是索引 也就是位置 不是元素
另外,如果pop()中不填入索引,则会拿到最后一个元素
print(c)
>>>1 在位置0上面的元素是1
clear()
a.clear()直接清空列表 只剩下空列表 列表还是存在的
4,改
a = [1,2,3,5]
直接找到重新赋值就行
a[1]=6
把索引为1的值改为6
print(a)
>>> 1,6,3,5
关于顺序
g=[9,5,0,8,1,6]
g.reverse()
print(g)
>>>6,1,8,0,5,9
把g中的元素位置全部给颠倒 没有返回值 仅仅只是一个方法
g.sort()print(g)
>>>0,1,5,6,8,9
与reverse不同的是 sort是将元素按照大小进行排序 从大到小 如果字符串是字母,那么将按照首字母的ascall码排序的大小
进行排序 并且与reverse()方法一样 只是一个没有参数的空返回值的函数方法 因此没办法将g.sort()的值赋给其他变量
sort()方法中 默认reverse=false如果改为true 那么 将会从大到小排序
g.sort(reverse=true)
print(g)
>>>9,8,6,5,1,0
元组
元组是只读列表 数据可以被查询,但是不能被修改
a=(20,1,2,4)
a就是一个元组 元组也有索引,和列表差不多 除了不能进行修改 删除 增加 其他都是一样的 。 切片同样适用于元组
查
print(a[1:3])
>>>2
字典 dictionary
字典和列表不一样 没有索引 是无序的
字典由 键:键值 组成,且键和键值是映射关系 意思是,键是唯一的,与之对应的是键值,一个键值对应唯一的键。而且键是不可变的,一旦变了就不是唯一的了
dic={"name":"Isaac","age":22,“sex":”男“}
查:
print(dic["name"])
>>>Isaac
没有索引,就跟你查字典一样,你知道键,那么你就能查到对应的值。
print(dic.keys())
>>>dict_keys(['name', 'age', 'sex']) 查找所有的键
print(dic.values())
>>>dict_values(['Isaac', 22, '男']) 查找所有的键值
print(dic.items())
>>>dict_items([('name', 'Isaac'), ('age', 22), ('sex', '男')])查找所有的键值对
改”
dic["age"]=18 先通过dic查询到相应的键值,再把新的键值赋予原来的键
如果dic[]中的原来的字典中没有,那么就会自己创建一个新的键,并且把键值赋予这个新的键
dic2={“name”:"zr"}
dic.update(dic2) 把dic2中的键值对更新到dic中,如果dic中原本有键 比如本例中,dic中原本有name
那么dic2中的键值就会覆盖dic中的键值
print(dic)
>>>{'name': 'zr', 'age': 22, 'sex': '男'}
增
setdefault()方法 增加键值对 这是一个有返回值的函数方法,返回的值分为两种情况
1.当你增加的键原本字典中有的时候
a=dic.setdefault("name",“rx”)
print(a)
>>>Isaac
会返回原来name的键值,并且,并不会覆盖原来的键值,也就是字典中的name的键值还是Isaac
2.当你增加的键原本字典中没有的时候
b=dic.setdefault("like","zr")
print(a)
>>>zr
会返回你赋予的新键值,并且原本字典会增加这个键值对
删除
del 能直接删除键值对
del.del["name] 直接name和键值都删了
clear()
dic.clear()直接清空字典,变成了空字典
dic.pop("age") 列表中,根据索引删除,字典没有索引,所以填入键 因为索引和键一样唯一 同样的,有返回值,返回值就是你删除的键值
dic.popitem() 如果没有填入键,则会随机删除一对键值
嵌套
列表 元组 和字典经常会用到嵌套
product_list=[("python book",80),("java book",50),("php book",60),("c语言 book",40)]
这个列表就是嵌套了列表和元组
把元组作为列表元素
字典嵌套也行
可以在字典中嵌套元组和列表,但是值得注意的是,字典的键不可以嵌套。能嵌套的只能是键值
dic={"xiaoming":[("age",18),("hobby","game")],"xiaohong":[("age",16),("hobby","TV")]}
查询小明的年龄
print(dic["xiaoming"][0][1])
过程:通过键”xiaoming“ 找到[("age",18),("hobby","game")] 这个列表,在列表中("age",18)在索引0上,所以[0]找到这个元组,在元组("age",18)中,18 处于索引上 所以通过[1]取到元素18
>>>18
同样的,找到这个值,重新赋予新的值就可以实现更改了
通过以下代码可以同时创建几个相同键值,键不相同的的键值对
dic=dict.fromkeys(["host1","host2","host3","host4"],"text")
print(dic)
>>>{'host1': 'text', 'host2': 'text', 'host3': 'text', 'host4': 'text'}
修改键值:dic["host1"]="text1" 这样就修改了host1的键值,其他的键值还是原来的键值
dic=dict.fromkeys(["host1","host2","host3","host4"],["text1","test2"])
print(dic)
>>>{'host1': ['text1', 'text2'], 'host2': ['text1', 'text2'], 'host3': ['text1', 'text2'], 'host4': ['text1', 'text2']}
修改host2的test2 变成text3
dic["host2"][1]="text3" [1]是在['text1', 'text2']中的text2 的索引,
print(dic)
>>>{'host1': ['text1', 'test3'], 'host2': ['text1', 'test3'], 'host3': ['text1', 'test3'], 'host4': ['text1', 'test3']}
结果,每个键值中的text2都变成了text3 所以这就是与上面不同的地方
字典排序
sorted 按大小排序 字典没有sort()方法
dic={5:"555",4:"666",8:"999"}
print(sorted(dic.values())) 根据dic的键值进行从小到大排序,如果是字符就以ascll码排序
>>>['555', '666', '999']
print(sorted(dic.keys())) 同样的,按照键大小进行排序
>>>[4, 5, 8]
print(sorted(dic.items()))也是按照keys大小排序 不过结果是键值对
>>>[(4, '666'), (5, '555'), (8, '999')]
字典遍历
for i in dic:
print(i)>>>打印字典的所有keys(键)
print(i,dic[i])>>>打印key 和 键值
for i in dic.items(): items指的是键值对
print(i) >>>打印出(key:values)
for i,v in dic.items():
print(i,v)>>> 打印出key values 没有”:“
本文是作者学习Python一周后的学习总结,主要围绕列表、元组和字典三大主题展开,包括它们的创建、操作(增、删、改、查)以及一些特殊用法,如切片、排序、嵌套等。通过实例讲解了各种操作方法,适合Python初学者参考。
330

被折叠的 条评论
为什么被折叠?



