Python 编程 | 连载 07 - 列表与元组操作
“Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。”
一、列表 List 与 元组 Tuple 操作
len 函数
len() 函数可以作用在列表和元组中,返回列表和元组中元素的个数;len() 函数作用在 None、bool 和数字类型会报错。
mix_list = [1, 'stark', [4, 6], ('python', 'java'), {'name': 'thor', 'age': 1500}]
mix_list_length = len(mix_list)
print(mix_list_length)
dict_type = {
'name': 'thor',
'from': 'asgard'
}
print(len(dict_type))
string_str = 'HelloPython'
print(len(string_str))
string_str = 'HelloPython'
print(len(string_str))
bool_res = string_str.istitle()
print(len(bool_res))
bool类型调用len函数报错,bool类型没有长度
none_type = None
print(len(none_type))
None 类型没有长度, len() 函数报错
int_type = 1234
print(len(int_type))
整型类型也没有长度
in、not in函数
- in是判断某个成员是否在该数据结构中
- not in 就是判断成员不在该数据结构中
heros = ['Thanos', 'Captain America', 'Iron Man', 'Thor', 'Doctor Strange', 'Star Lord']
is_in = 'Spider Man' in heros
print(is_in)
not_in = 'Thanos' in heros
print(not_in)
列表(或元组)之间的累加和乘法
列表之间或者元组之间可以进行累加操作,累加操作返回一个新的列表或者元组;列表或者元组可以与整型进行乘法操作并返回一个新的列表或者元组
heros = ('stark', 'steven', 'peter')
heros_add = heros + heros
print(heros_add)
print('长度为:%d'%(len(heros_add)))
heros_time = heros * 10
print(heros_time)
print('长度为:%d'%(len(heros_time)))
heros = ('stark', 'steven', 'peter')
# 元组的 += 和 *= 操作
heros += ('banner',)
print(heros)
heros *= 3
print(heros)
heros = ('stark', 'steven', 'peter')
# 列表的 += 和 *= 操作
heros_list = list(heros)
heros_list += ['loki']
print(heros_list)
heros_list *= 3
print(heros_list)
append 函数
append 函数可以将一个元素添加到当前列表中,没有返回值;append 会将元素添加到列表的末尾;需要注意的是 append 会在原有列表的基础上修改,不会生成新的列表
创建 list_append.py
heros = ['stark', 'steven', 'peter']
print(id(heros))
heros.append('loki')
print(heros)
print(id(heros))
执行 append 操作后,列表元素变化了,内存地址没有变化,说明append是在原有列表基础上做的修改,同时也说明了列表是可变数据类型
mix_list = []
num_list = [1]
num_tuple = (1,)
dict_type = {'name': 'stark', 'age': 40}
mix_list.append(num_list)
mix_list.append(num_tuple)
mix_list.append(dict_type)
print(mix_list)
mix_list = []
num_list = [1]
num_tuple = (1,)
dict_type = {'name': 'stark', 'age': 40}
mix_list.append(num_tuple, num_list, dict_type)
print(mix_list)
append函数一次只能添加一个元素,也就是只能接收一个参数,传入多个参数会报错
insert 插入函数
insert函数可以将元素插入到当前列表中指定的位置上,insert接收两个参数,分别是要添加的元素和要添加的位置
insert与append的区别:
- append只能添加到列表的结尾,insert可以插入到列表中的任意位置
- insert不传插入的位置,默认添加到列表的结尾
- 字符串、列表、元组的位置都是0开始从左往右依次递增的
student_list = [
{'name': 'stark', 'gender': 'M'},
{'name': 'peter', 'gender': 'M'},
]
loki = {'name': 'loki', 'gender': 'M'}
student_list.insert(1, loki)
print(student_list)
wanda = {'name': 'wanda', 'gender': 'F'}
student_list.insert(8, wanda)
print(student_list)
count 函数
count函数可以返回指定元素在列表中的个数,接收一个参数,返回一个整型类型;如果要查询的元素不存在于列表中,则返回为0;count函数只会检查完整元素
是否存在列表中以及个数
# 在列表中使用count函数
pets = ['皮皮', '小六', '猪猪', '团团', '小墨点', '猪猪', '小六']
name_01 = '猪猪'
count_01 = pets.count(name_01)
print('有%s只宠物的名字叫%s' % (count_01, name_01))
name_02 = '猪'
count_02 = pets.count(name_02)
print('有{}只宠物的名字叫{}'.format(count_02, name_02))
判断列表中字典的个数
pets = [
{'name': '猪猪'},
{'name': '皮皮'},
{'name': '小六'},
{'name': '猪猪'}
]
name_01 = {'name': '猪猪'}
count_01 = pets.count(name_01)
print('有%s只宠物的名字叫%s' % (count_01, name_01))
name_02 = {'name': '猪'}
count_02 = pets.count(name_02)
print('有{}只宠物的名字叫{}'.format(count_02, name_02))
元组中的 count 函数
pets = ('猪猪', '皮皮', '小六', '猪猪')
print('猪猪有{:d}只'.format(pets.count('猪猪')))
remove 函数与 del 函数
remove 函数可以删除列表中的某个元素,需要传入一个参数既要删除的元素;如果传入的元素在列表中不存在则直接报错,如果列表中被删除的元素有多个,则只删除从左往右数第一个;remove 在原列表基础上进行操作
del 函数是 Python的内置函数,可以将变量从内存中完全删除
pets = ['猪猪', '皮皮', '小六', '猪猪']
print('猪猪有{:d}只'.format(pets.count('猪猪')))
pets.remove('猪猪')
print('猪猪还剩{:d}只'.format(pets.count('猪猪')))
del pets
print(pets)
执行完 del 函数后,变量无法被识别,说明变量已经被完全从内存中删除
reverse 函数
reverse函数的作用是可以对当前列表的顺序进行反转,该函数不需要传递参数,并且是在原列表基础上执行的反转
pets = ['猪猪', '皮皮', '小六']
print('反转前的列表顺序为:{}'.format(pets))
pets.reverse()
print('反转后的列表顺序为:%s' % pets)
转载自:https://juejin.cn/post/7081246228834418724