列表和元组
列表和元组(tuple)中的元素可以是任意类型的Python数据对象。 元组不可变,列表可变
列表
list()
创建一个空列表list(str)
将string类型的数据转换为列表list[start:end:step]
列表切片,不包含位于end-index的元素
# 列表切片不会改变原有列表,而是生成新的列表
old_list = [0, 1, 2, 3, 4]
# list切片
new_list = old_list[0:2] # [0, 1]
print(old_list) # [0, 1, 2, 3, 4]
# list逆序排列
new_list = old_list[::-1] # [4, 3, 2, 1, 0]
# 可以通过切片赋空值的形式达到删除的效果
old_list[0:2] = []
print(old_list) # [2, 3, 4]
# 或者del进行删除
del old_list[0:1]
print(old_list) # [3, 4]
list.append(params)
list.extend(list2)
合并列表list += list2
合并列表
list.insert(index, params)
在指定位置上插入元素del list[index]
删除指定位置的元素。当列表中一个元素被删除之后,位于它后面的元素会自动向前补充,列表长度减一list.remove(params)
删除指定元素list.pop()
获取并删除指定位置的元素
# pop(0)返回列表的头元素,pop()或pop(-1)则返回列表的尾元素
old_list = [0, 1, 2, 3, 4]
old_list.pop() # 4
print(old_list) # [0, 1, 2, 3]
list.index(params)
查询指定元素所在的位置(仅匹配第一个)params in list
判断元素是否存在于列表中list.count(params)
记录某个特定值在列表中出现的次数
list.sort()
对列表进行排序,改变原有列表list.sorted()
返回排好序的列表副本,不改变原有列表sort(reverse = True)
默认的排序为升序,将reverse设为True则可进行倒序排列
如果将一个列表赋值给了多个变量,改变其中的任何一处,则会造成其他变量对应的值也被改变
a = [1, 2, 3]
b = a
a[0] = 4
print(b) # [4, 2, 3]
通过拷贝一份列表,可以避免以上情况
# old_list.copy()
# list(old_list)
# old_list[:]
a = [1, 2, 3]
b = a.copy()
# or b = list(a)
# or b = a[:]
a[0] = 4
print(b) # [1, 2, 3]
元组
()
创建空元组a, b = ('example', 'example2')
解构元组tuple(list)
将list转换为元组
创建包含一个或多个元素的元组时,每一个元素后面都需要跟着一个逗号。如果多于一个元素,则最后的那个逗号可以省略。
创建元组
# 创建空元组
empty_tuple = ()
empty_tuple = tuple()
example_tuple = 'example0', 'example1', 'example2'
# 创建单一元组
sinple_tuple = 'example',
# 注:在创建单一元组时,将值放在括号内不会创建元组
sinple_tuple = ('example')
print(type(sinple_tuple)) # str
解构元组
a, b, c = example_tuple # 将元组里的值赋值给变量 -- 元组解包
a, b, *rest = range(10)
a # 0
b # 1
rest # [2, 3, 4, 5, 6, 7, 8, 9]
first, second, *rest, last = range(10)
last # 9
元组在函数中的运用
# 该函数可以接受任意长度的参数,并在函数内部组建成为元组的形式
def print_all(*args):
print(args)
print_all(1, 2, 3, 4) # (1, 2, 3, 4)
# 将元组分散后传入函数
def print_two(a, b):
print(a)
print(b)
print_two(*(1, 2))
# 1
# 2
# 当函数返回多个参数时。。
def return_multiply():
# do something
return a, b
# 返回值是元组的形式
# example:
def return_multiply(*args):
a, b = args
return a, b
result = return_multiply(1, 2)
print(type(result)) # <class 'tuple'>
print(result) # (1, 2)