python小白的自学之路——一周学习总结 列表丶元组丶字典

本文是作者学习Python一周后的学习总结,主要围绕列表、元组和字典三大主题展开,包括它们的创建、操作(增、删、改、查)以及一些特殊用法,如切片、排序、嵌套等。通过实例讲解了各种操作方法,适合Python初学者参考。

    学习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 没有”:“ 

    













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值