新手学习Python第四天-新手学习笔记

不知不觉学到第四天了,要尽管完成,进度有些被落下了 

早上07:44达到实验室,喝了豆浆吃了面包背了单词开始学习

----08:19-----

1. 获取列表的多个元素-切片操作

print(对象名字[:8:2]),start位置没写就是表示从0开始

程序如图:

lst=[10,20,30,40,50,60,70,80,90]
print(lst[:8:])

我们再试一试,stop这个位置不写,会是什么情况 

lst=[10,20,30,40,50,60,70,80,90]
print(lst[1::2])

1.2逆推

我们再介绍一种步长为负数的情况,即为逆推情况

lst=[10,20,30,40,50,60,70,80,90]
print(lst[::-1])

lst=[10,20,30,40,50,60,70,80,90]
print(lst[8::-1])

其结果和此程序结果一样

从哪里开始,加上-1,就是往回推

lst=[10,20,30,40,50,60,70,80,90]
print(lst[6:0:-2])

记住哈,左开右闭。取不到0的索引位置,往回推步长为2

总结来讲,strat不写从0开始,stop不写到最后,步长不写为1,步长为负数,就逆推,保持左开右闭原则

1.3列表元素的判断和遍历

判断存在与否,可以通过in 或者not in 来判断

程序如下:

lst=[10,20,30,'hello',50,60,70,80,90]
print('h'in lst)
print('hello'not in lst)
print(10 in lst)

判断就是元素in 列表名 元素 not in 列表名

列表元素的遍历

可以使用 for 迭代变量 in 列表名

我们回顾一下 这个for... in.. 语句是可以循环的 例如:

for a in 'python':
    print(a)

一次把python给了变量a,然后a呢依次输出出来。

再比如:

lst=[10,20,'hello','python']
for a in lst:
    print(a)

1.4列表元素的增加操作

1.4.1 append():在列表的末尾增加一个元素

举个例子:

lst=[10,20,30,40,50]
lst.append(90)
print(lst)

append只能添加一个元素。如果是多个元素的话就变成。

程序如下:

lst=[10,20,30,40,50]
lst2=['hello','world']
lst.append(lst2)
print(lst)

但这样不好看,所以才有了如下的extend() id原来一样

1.4.2 extend():在列表的末尾至少添加一个元素

形式如下:对象.extend(元素)

lst=[10,20,30,40,50]
lst2=['hello','world']
lst.extend(lst2)
print(lst)

这样就好看了。id还是原来的

1.4.3 insert():在列表的任意位置添加一个元素

形式如下:对象名.insert(索引位置,元素)原来的索引位置往后移,

lst=[10,20,30,40,50]
lst2=['hello','world']
lst.insert(2,"ok")
print(lst)

1.4.4 切片:在列表的任意位置添加至少一个元素

其核心思想就是替换,

程序如下,我写了两个列表。

lst=[10,20,30,40,50]
lst2=['hello','world']
lst[2:]=lst2
print(lst)

切片这个名字用得好,用得妙,形容得恰到好处。

以上这些添加操作不要忘记 形式为 对象名+.+以上操作

1.5 列表元素的删除操作:

1.5.1remove():一次删除一个元素,相同元素只删除第一个。

lst=[10,20,30,40,50,30]
lst2=['hello','world']
lst.remove(30)
print(lst)

你看,都有30,就删除的是第一个。还是形式:列表对象名+.remove(指定元素)

1.5.2 pop():删除一个指定元素索引位置上的元素,不指定索引删除列表最后一个元素

lst=[10,20,30,40,50,30]
lst2=['hello','world']

lst.pop(2)
print(lst)
lst.pop()
print(lst)

删除指定位置的索引,如果pop()则删除最后一个元素

1.5.3切片:一次至少删除一个元素

与增加不同的是,删除的是取代思想

lst=[10,20,30,40,50,30]
lst2=['hello','world']
new_list=lst[1:4]
print(new_list)

第二种切片方法是:令想要删除的元素以切片呈现等于空列表 即lst[start:stop]=[]

程序如下:

lst=[10,20,30,40,50,30]
lst2=['hello','world']
lst[1:3]=[]
print(lst)

一个是取其中内容,一个是保留原列表删除一段元素。

1.5.4clear():清空列表

形式如下:对象名.clear() 

lst=[10,20,30,40,50,30]
lst2=['hello','world']
lst.clear()
print(lst)

1.5.5del:删除列表

第一种:

lst = [1, 2, 3, 4, 5]
del lst[2]  # 删除索引为 2 的元素,即删除数字 3
print(lst)  # 输出: [1, 2, 4, 5]

第二种:

lst = [1, 2, 3]
del lst  # 删除整个列表变量
# print(lst)  # 这将引发错误,因为 lst 已经被删除

1.6列表元素的修改操作

1.6.1 一次修改一个值,用对象名[索引位置]=要修改的内容

比如:

lst=[10,20,30,40,50,30]
lst[2]='hello'
print(lst)

1.6.2 第二种方式:切片操作

lst=[10,20,30,40,50,30]
lst[1:3]=['hello','world',50,60]
print(lst)

对象名[start:stop]=[内容]

1.7列表的排序操作:

1.7.1 从小到大:用sort()  语法结构为:对象名+.+sort()

例如:

lst=[10,20,30,40,50,30]
lst.sort()
print(lst)

若从大到小,即降序则只需要在sort(reverse=True)即可。若写上False就是升序排序

lst=[10,20,30,40,50,30]
lst.sort(reverse=True)
print(lst)

这个是False的:

不改变列表对象

1.7.2 使用内置函数sorted(),产生新的列表对象,为升序

lst=[10,20,30,40,50,30]
new_list=sorted(lst)
print(new_list)

若改为降序,则sorted(lst,reverse=True)

lst=[10,20,30,40,50,30]
new_list=sorted(lst,reverse=True)
print(new_list)

1.8列表生成式

对象名= [x*y for x in range(数字)

例如:

lst=[x for x in range(5)]
print(lst)

生成一个相乘的呢?

lst=[x*x for x in range(5)]
print(lst)

-----老师办了调课手续花了一个半小时----现在是14:28开始学习-------

2.字典:

列表是一个一个的,就像单身贵族。使用方括号[]

而字典是一对一对的,就像二人世界一般,使用花括号{}

:前后,前面叫做键,后面叫做值

例子:scores={'张三‘:100,’李四‘:98,’王五‘:45}

键值对的方式存储数据,字典是一个无序的序列。列表是有序的。

里面有很多key即键,是经过计算才去放入的值,必须是不可变序列。

不然总变,int和str是不可变序列,不可以进行增删减操作。

列表和字典是可变序列,可增删减

python是根据key查找value所在的位置

通过 hash(key)查找效率是快的

2.2字典的创建

2.2.1最常用的方式是花括号{}

例如scores={'张三’:100,‘李四’:98,‘王五’:45}

2.2.2使用内置函数dict()

dict( name = 'jack',age=20)

例子说明:

2.2.1 第一种常见的花括号{}

变量名 = {‘名字’:数值,’名字2‘:数值}

scores={'张三':88,'李四': 55,'王五':99}
print(scores)

2.2.2第二种内置函数dict()

变量 = dict(对象=str,/对象2=数字)

scores={'张三':88,'李四': 55,'王五':99}
print(scores)
student = dict(name='jack',age = 20)
print(student)

2.3字典元素的获取:

 2.3.1  []:scores['张三‘] 这是对Values的获取
scores={'张三':50,'李四':80,'王五':90}
print(scores)
print(scores['张三'])

2.3.2 get(): scores.get('张三') 这是对Values的获取
scores={'张三':50,'李四':80,'王五':90}
print(scores)
print(scores['张三'])
print(scores.get('王五'))

它们俩的区别不是很大,就是有错误的时候,scores['黄六’],返回keyError

而get.scores('黄六‘),返回None 再加get.scores('黄六‘,99) 返回的是None,99

例如:

直接显示数值和None 和keyError

 2.4字典的常用操作

2.4.1 key的判断

in和not in 

例如:’张三‘in scores , 'Marry‘not in scores 

scores={'张三':50,'李四':80,'王五':90}
print ('张三'in scores)
print('王五' not in scores)

2.4.2删除

语法结构:del scores['张三’]  这里是方括号哈[]

scores={'张三':50,'李四':80,'王五':90}
del scores['张三']
print(scores)

清空命令

scores.clear() 就清空了字典里的所有元素

scores={'张三':50,'李四':80,'王五':90}
scores.clear()
print(scores)

新增操作

语法结构:scores['陈六‘]=80 ,即变量['名字’]=math

scores={'张三':50,'李四':80,'王五':90}

scores['JAKC']=80
print(scores)

2.5获取字典视图的三个方法:

2.5.1keys: 获取字典中所有的key  (丈夫)

结构:对象名+.+keys 例如:scores.keys()

list(sc),就是把sc给他列表化了。

scores={'张三':50,'李四':80,'王五':90}
sc=scores.keys()
print(sc)
print(list(sc))

类型为dict_keys

2.5.2values:获取字典中所有value  (妻子)
scores={'张三':50,'李四':80,'王五':90}
va=scores.values()
print(va)

类型为:dict_values

列表化一下 list(va)

2.5.3items:获取字典中所有key,value对    (家庭)

语法结构:对象名+.+items(0

scores={'张三':50,'李四':80,'王五':90}
it=scores.items()
print(it)
print(list(it))

下面的()为元组

2.6字典元素的遍历:

例如:for item in scores:

        print(item)

这是获取的键即(key)

程序如下:

scores={'张三':50,'李四':80,'王五':90}
for item in scores:
    print(item)

那么这是获取key的方法,values呢?
之前学到的scores[对象】,与scores.get(对象)

scores={'张三':50,'李四':80,'王五':90}
for item in scores:
    print(item,scores[item],scores.get(item))

2.7字典特点:

1.都是key-values对,key不可重复,而values可重复。

2.元素都是无序的

3.key是不可变对象 即(str 和 int)

4.可动态伸缩

------有位研三的师哥明天走,所以晚上得一起吃饭。不知道啥时候回来,所以先发出去---

继续加油。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值