0.字符串的操作
编程中关于字符串大小写转换的情况,经常遇到。我们将相关方法汇总到这里。为了方便学
习,先设定一个测试变量:
- 列表的介绍
python的列表即数组 可以接受不同类型的数据
下面看一下代码
array = [1, 2, 3, 4, 5, "你又怎么了"]
print(array)
结果如下
- 列表的调用
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) 我们假设有一个数组名叫 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)列表的元素增加
首先,我们初始化一个列表 使用.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语言,这真的是太方便了。
- 列表的加和乘以及嵌套列表
列表的嵌套和相乘主要是实现叠加的功能
请看代码
num1 = [1, 2, 3]
num2 = [4, 5, 6]
num1 = num1 + num2
print(num1)
num1 = num1 * 3
print(num1)
可以发现,加法可以理解为后面叠加,乘法可以理解为后面追加几次前面的内容
- 数列的嵌套(其实也就是二维数组啦)
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)