列表及字符串基本操作

列表

列表是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"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值