python:pop和remove在列表,集合,字典中的区别

一,首先是pop:

1. 列表:可以用索引指定返回并删除的元素,如果没有指定,则返回并删除最后一位元素。

# 列表: 返回并删除最后一位的元素,但也可以用索引指定某个元素
list1 = [1, 2, 3, 4]
list1.pop(1)            # 返回并删除索引为1的元素2
w = list1.pop(1)        # 设变量w来接受返回的2
print(w)
print(list1)

list2 = ['a', 'b', 'c']
a = list2.pop()         # 未指定元素,删除并返回最后一位元素’c‘
print(a)
3
[1, 4]
c

2. 集合:不可以用索引指定某个元素, 只能随机返回并删除集合中的一个元素

s1 = {'a', 'b', 'c'}
b = s1.pop()           # 变量b用来接受随即返回的元素
print(s1)
print(b)
{'a', 'c'}
b

3. 字典:可以指定键来返回相应的值,同时删除该键值对

names = {'001': '张三', '002': '李四', '003': '王五'}
a = names.pop('001')
print(a)
print(names)
张三
{'002': '李四', '003': '王五'}

二. remove

1.列表 和 集合

这次就不能像pop一样用了,因为它不会返回值,只是一个操作,我们来看看它要是像pop一样用会发生什么:

错误使用:

list1 = [1, 2, 3, 4]
print(list1.remove(2))
list2 = ['a', 'b', 'c']
print(list2.remove('a'))
None
None

正确使用:

列表和集合一样,在remove里面直接指定元素删除。

# 列表
list1 = [1, 2, 3, 4]
list1.remove(2)             # 直接删除列表list1中的元素2
print(list1)
# 集合
s1 = set('python')
s1.remove('p')              # 直接删除集合中的元素'p'
print(s1)
[1, 3, 4]
{'o', 't', 'n', 'y', 'h'}

2.字典:

不能给字典用remove

三. 总结:

列表:对列表来说,如果我们知道下标(索引)可以用pop指定下标(索引)来删除元素,但如果只知道元素 ,而不知道它位于哪个位置,也就是不知道它的下标,就可以用remove来直接删除这个元素了。

集合:对于集合来说呢,pop只能随机删除,remove却可以指定元素删除,集合是没有办法指定下标删除元素的,因为集合是无序的

字典:我们不能给字典用remove,显然字典也不需要,它只要pop就够了,我们可以用pop来指定键返回值,也可以指定键来删除整个键值对。

四.补充

1. 如何删除字符串中的元素呢?

字符串一经创建就不能不修改了,也就是说一旦我们创建了一个字符串s1:  str = 'python',那么s1永远就是'python',我们不能在下面再次定义s1 = 'C++',也不能对字符串进行修改元素、替换元素、删除元素的操作。哪如果我们想要得到s1的修改版该怎么做呢?

1.1可以将字符串转换成列表再操作,因为我们知道列表的可操作性非常强

1.2字符串也有一些特定的方法可以用,前提是我们得创建一个新字符串来接收s1的修改版,这样就可以保证s1不变,同时又得到了s1的修改版,如下进行字符串的替换replace:

字符串元素的替换(创建新字符串得到这个替换后的修改版):

# replace可以用于替换字符串中的元素(当然,前提是创建新字符串得到这个替换后的修改版)
str1 = 'python'
str2 = str1.replace('t', 'w')
print(str2)
pywhon

字符串元素的删除(创建新字符串得到这个替换后的修改版):

还是用replace这次把'w',删了就行了,总比转成列表删除再转回来要简单哈哈

str1 = 'python'
str2 = str1.replace('t', '')
print(str2)
pyhon

最后,因为字符串一旦创建就不可修改,所以对字符串进行的分割(split),元素替换(replace)、大小写转换(upper, lower, title, capitalize),删除首尾指定字符(strip, lstrip, rstrip)等操作都需要创建新字符串来接受原字符串的修改版,而原字符是不会变的。

2.字符串、列表、元组的共同点:

都可以切片 str6 = str1[2:5]

都可以用+组合,然后得到一个组合版的字符串/列表/元组

都可以用del删除

都可以用len()来计算长度

都可以通过下标访问元素如,因为他们都是有序的(集合就不行了,集合是无序的~~)

str1 = 'python'
a = str1[1]
print(a)

y

都可以用max计算最大的元素,如果是数字的话计算数字大小,如果是英文字母的话,计算字母表越往后的越大,如:

# 列表
list1 = [1, 2, 3, 4]
print(max(list1))
list2 = ['a', 'bbbbc']
print(max(list2))
# 字符串
str1 = 'python'
print(max(str1))
4
bbbbc
y

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值