一,首先是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