列表
列表是python中的标准变量类型的一种。一个列表中可以包含字符、数字、字符串甚至子列表。列表中的元素可以随时更新,也可以用来赋值给其他变量。列表中的元素个数是非固定的,可以改变的,可以添加新的元素。
内置函数
函数 | 作用 |
list.append(obj) | 在列表末尾添加新的对象 |
list.insert(index, obj) | 将对象插入列表 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.sort( key=None, reverse=False) | 对原列表进行排序 |
list.reverse() | 反向列表中元素 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.clear() | 清空列表 |
list.copy() | 复制列表 |
在列表中添加元素,
x = [1, 2, 3, 4, 5]
x. append(6)
x. insert(3, 4)
>>>x = [1, 2, 3, 4, 5, 6]
>>>x = [1 ,2, 3, 4, 4, 5, 6]
从列表中移除元素,
x = [1, 2, 3, 4, 5]
x. remove(4)
num = x. pop(0)
>>>x = [1, 2, 3, 5]
>>>x = [2, 3, 5]
>>>num = 1
改变列表的顺序,
x = [3, 2, 1, 4, 5]
x. sort()
x. reverse()
>>>x = [1, 2, 3, 4, 5]
>>>x = [5, 4, 3, 2, 1]
count函数统计指定元素出现的次数,index函数找出列表中与指定值匹配的第一个元素位置,
x = [3, 2, 3, 1, 1, 2, 1, 4, 5]
[x.count(3), x.count(1)]
[x.index(3), x.index(1)]
>>>[2, 3]
>>>[0, 3]
clear 函数将列表清空,copy函数复制原有的列表。
x = [1, 2, 3, 4, 5]
y = x.copy()
y.clear()
>>>[1, 2, 3, 4, 5]
>>>[]
需要注意的是,当用等号时,复制了原来列表存储的地址。
x = [1, 2, 3, 4, 5]
y = x
y.clear()
此时,x结果为
>>>[]
列表的截取与拼接
x = [1, 2, 3, 4, 5]
x[-2:]
x[:-2]
x[:]
x[::-1]
x[-2:] + x[:-2]
>>>[4, 5]
>>>[1, 2, 3]
>>>[1, 2, 3, 4, 5]
>>>[5, 4, 3, 2, 1]
>>>[4, 5, 1, 2, 3]
看一个关于列表的例子
- 例1. 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
- 输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-array
nums = [1, 2, 3, 4, 5, 6, 7]
k = 3
nums[:] = nums[-3:] + nums[:-3]
字符串
字符串是 Python 中最常用的数据类型。
内置函数
函数 | 作用 |
split(str="", num=string.count(str)) | 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
join(seq) | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
截取与合并
x = "fdajg fjoqjg re"
x.split(" ", 2)
x.split(" ", 1)
",".join(x)
>>>['fdajg', 'fjoqjg', 're']
>>>['fdajg', 'fjoqjg re']
>>>"f,d,a,j,g, ,f,j,o,q,j,g, ,r,e"
索引
字符串的索引与列表类似。
x = 'farj foiqjg rjoeiq'
x[-2:]
x[:-2]
x[::-1]
>>>'iq'
>>>'farj foiqjg rjoe'
>>>'qieojr gjqiof jraf'
字符串不可以对单个元素进行修改。
x = 'farj foiqjg rjoeiq'
x[0] = 'a'
TypeError: 'str' object does not support item assignment
- 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
- 输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
x = "Let's take LeetCode contest"
" ".join(y[::-1] for y in x.split())
输出为
"s'teL ekat edoCteeL tsetnoc"