自学python第三天

0.字符串的操作
编程中关于字符串大小写转换的情况,经常遇到。我们将相关方法汇总到这里。为了方便学
习,先设定一个测试变量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 列表的介绍
    python的列表即数组 可以接受不同类型的数据
    下面看一下代码
array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array)

结果如下
在这里插入图片描述

  1. 列表的调用
    1)打印整个数组:直接print(数组名)
    2)访问列表的某一个元素
    数组名[0] 代表第一个元素

    3)如果列表很长,你不知道最后一个元素是第几个,那么你又想访问最后一个元素,那么怎么做呢?
    别急,看以下代码
array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[len(array)-1])

在这里插入图片描述
使用len()函数可以轻松解决此问题啦。

但其实呢,还有更快的更好的方案
我们这里要知道一点,列表的最后一个元素可以用下标 -1来访问
废话不多说,看code

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[-1])

在这里插入图片描述
在这里插入图片描述

  1. 列表切片(一次性获取多个元素,有多个函数)
    1) 我们假设有一个数组名叫 array
    那么可以用array[0:3]访问前三个元素
    可以用左开右闭来理解
array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[0 : 3])

在这里插入图片描述

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[3 : 6])

在这里插入图片描述
由上面两个例子我们可知:
array[0:3] 是从array[0]访问,访问(3-0)个元素,也就是访问到array[2]。
array[3:6]是从array[3]访问,访问(6-3)个元素,也就是访问到array[5]。

真正让作者嘚瑟的是
array[ : 3]

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[ : 3])

在这里插入图片描述
可以发现,从array[0]开时访问,访问(3-0)个,一直到array[2]

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[3: ])

在这里插入图片描述
可以发现,从array[3]开始访问,访问到最后。

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[ : ])

上面这个代码那么不用猜疑,这个肯定是全部访问。

2)设置步长去访问

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[0:6:2])

结果:在这里插入图片描述
3)将整个列表倒序输出
那么就设置步长为-1

array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array[::-1])

在这里插入图片描述

  1. 列表的增删改查
    1)列表的元素增加
    首先,我们初始化一个列表 使用.append函数在列表末尾添加一个元素
heros = ["钢铁侠", "绿巨人"]
print(heros)
heros.append("黑寡妇")
print(heros)

在这里插入图片描述
注意:.append函数仅仅是添加在末尾,且只能添加一个元素。
那么,我们想要添加多个元素,怎么办呢?这时候,我们用到一个函数
.extend(),允许你添加一个可迭代对象
代码演示:

heros = ["钢铁侠", "绿巨人"]
print(heros)
heros.append("黑寡妇")
print(heros)
heros.extend(["鹰眼", "灭霸", "雷神"])
print(heros)

在这里插入图片描述
注意:extend()方法的参数必须是一个可迭代对象,比如字符串啦。新的内容是追加到原列表最后一个元素的后面。

****:insert(position,content)函数的说明:在列表的任意位置添加元素
position是指定插入的位置,content是成员
请看代码:

s=[1, 3, 4, 5]
s.insert(1, 2)
print(s)

结果如下
在这里插入图片描述
可以发现,插入的位置在第一个元素的后面,所以可以理解为待插入的位置为position的后面

如果要在开头插入呢?
那么输入s.insert(0, 0)即可在开头插入0这个元素

如果要在末尾插入呢?
那么输入s.insert(len(s), content)即可在末尾插入content这个元素啦。

2)删:
remove(content)函数:用于删除content这个元素,如果列表中有多个content,那么它只会删除第一个。

heros = ["钢铁侠", "绿巨人"]
print(heros)
heros.remove("绿巨人")
print(heros)

在这里插入图片描述
好,那么有时候我们需要删除某个位置上的 元素,
那么用pop(position)
它用于删除某位元素

heros = ["钢铁侠", "绿巨人"]
print(heros)
heros.pop(1)
print(heros)

在这里插入图片描述
注意,这里是按下标进行索引的,下标为1表示列表第2个元素
使用hero.clear()可以清空所有的元素

3)改:(单个替换,连续元素替换)
比如我们要把上面的绿巨人换成雷神
那么直接替换
heros[1]="雷神“

heros = ["钢铁侠", "绿巨人", "黑寡妇", "鹰眼", "蜘蛛侠", "雷神"]
print(heros)
heros[1] = "雷神"
print(heros)

在这里插入图片描述
如果,我们想要对连续位置进行替换,那么使用数列的切片
请看代码:

heros = ["钢铁侠", "绿巨人", "黑寡妇", "鹰眼", "蜘蛛侠", "雷神"]
print(heros)
heros[3:] = ["武松", "林冲", "李逵"]
print(heros)

结果:
在这里插入图片描述
******:那么,对于一个数字型的序列,我想对序列进行排序?
怎么办呢?是冒泡排序吗?显然这并不是python的优点,因为人家
已经封装好了库函数
sort() 函数可以实现序列的从小到大排序
reverse() 函数可以实现序列的从大到小的排序

num = [1, 9, 5, 6, 2, 7, 8]
num.sort()
print(num)
num.reverse()
print(num)

在这里插入图片描述

如此如此,节约大量时间那!!!!!!!

4)查:查找某个元素出现的次数(count(content)函数),查找某个元素的索引值(index(content))函数

num = [1, 1, 1, 9, 5, 6, 2, 7, 8]
count = num.count(1)
index = num.index(1)
print(count, index)

在这里插入图片描述
index()函数是返回第一个出现目标元素的索引值。

拷贝一个数组给另一个数组
直接赋值即可。

num = [1, 1, 1, 9, 5, 6, 2, 7, 8]
number = num[:]  #或者是number = num.copy()
print(number)

在这里插入图片描述
相比于C语言,这真的是太方便了。

  1. 列表的加和乘以及嵌套列表
    列表的嵌套和相乘主要是实现叠加的功能
    请看代码
num1 = [1, 2, 3]
num2 = [4, 5, 6]
num1 = num1 + num2
print(num1)
num1 = num1 * 3
print(num1)

在这里插入图片描述
可以发现,加法可以理解为后面叠加,乘法可以理解为后面追加几次前面的内容

  1. 数列的嵌套(其实也就是二维数组啦)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in matrix:
    for each in i:
        print(each, end=' ')
    print()

在这里插入图片描述

由此可知,数组是一个可迭代对象
第一个for循环表示一维数组,其有3个元素[1,2,3] [4,5,6]
[7,8,9]
第二个for循环表示二维,其对应一维数组里面的三个元素
print是自动换行,end=‘ '是说把原来的换行功能替换为引号里面的东西

二维数列的索引

matrix[0]:表示列表第一个数列
matrix[0][0]:表示列表第一个数列的第一个元素

列表推导式
列表推导式:
x = [i * 2 for i in range(10)]
结构: 表达式 for i in sth
作用:将i*2替换给i

x = [i * 2 for i in range(10)]
print(x)

在这里插入图片描述
可以发现:原来的数组相应的元素依次乘了2倍

请思考以下程序

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(len(matrix))

在这里插入图片描述
可以发现:matrix的长度为3,以,为分隔

打印主对角线元素怎么打印呢?

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
diag = [matrix[i][i] for i in range(len(matrix))]
print(diag)

在这里插入图片描述
len()返回3,range()用于生成一个数字序列0 1 2
matrix[i][i]用于将 1 5 9 赋值给diag这个数列

打印副对角线元素呢?

diag = [matrix[i][len(matrix)-i-1] for i in range(len(matrix))]
print(diag)

在这里插入图片描述
宁学费了么?

再谈列表推导式

引入if语句的列表推导式
请砍程序

even = [i+1 for i in range(10) if i % 2 ==0]
print(even)

在这里插入图片描述
可以发现:首先执行 for i in range(10)
然后执行i%2==0
最后执行i+1

字符串也可以用啦 如下所示。

words = ["great", "good", "excellent", "fantastic"]
print(words[0])
fwords = [w for w in words if w[0] == 'f']
print(fwords)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值