Python 列表和元组的使用方法

列表的基本使用

定义列表的格式:[元素1,元素2,元素3, … ,元素n ]

列表内的元素可以是不同类型的

列表内的元素是有序可变的,可以使用下标来对元素进行切片和修改

列表(list)是一个可迭代对象

# 字符串转列表
name = list('张三')  # print =>  ['张', '三']

# 元组转列表
name = list(('蒙犽', '后羿''鲁班''孙尚香')) # print =>  ['蒙犽', '后羿', '鲁班', '孙尚香']

列表的增删改查

# 添加
list.append(value)			# 在列表最后添加
list.insert(index, value)	# 在索引位置添加元素(从零开始)
list.extend(iterable)		# 将可迭代对象相加

# 删除
x = list.pop(index)		# 弹出索引位置的数据,默认为最后一个数据(从0计数)
list.remove(value)		# 删除指定值的数据, 元素不存在报错
list.clear()			# 清空列表
del list(index)			# 使用del运算符删除指定位置的元素(尽量别用)

# 查询
list.index('value')		# 返回元素索引,不存在报错
list.count('value')		# 返回元素个数
'value' in list			# 判断元素是否在列表内

# 修改
list[index] = new_value

# 复制

列表的遍历

# for....in	本质为不断的调用迭代器的next方法
for value in list:
	......
    
# while
i = 0
while i < len(list)
	......
    i += 1

列表排序&反转&复制

# 排序
list.sort()   				# 正序   改变原有列表
list.sort(reverse=True)		# 倒序
new_list = sorted(list)		# 生成新的列表

#  反转
list.reverse()		# 颠倒列表内元素顺序 == list[::-1]

# 复制
a = 1
b = a
a = 2
print(b)	# print => 1

list1 = [1, 2, 3]
list2 = list1
list1[0] = 4
print(list2)	# print => [4, 2, 3]

# python 里的数据都是保存在内存里的
# python 里的数据分为可变类型和不可变类型
# 	不可变类型:字符串、数字、元组	修改时新建一块内存,存储新值。原内存值不变
#	可变类型:列表、字典、集合	修改时内存地址内的值
# 赋值 == 指向地址


y = x 		# x 和 y 指向同一块内存空间  修改x会影响z

# 列表的浅复制  切片就是一个浅拷贝
z = x.copy() 	# x 和 z 内容一样,但指向不同的内存空间  修改x不影响z

import copy
a = copy.copy(x)  # 等价于x.copy() 同样都是浅拷贝

# 深拷贝

# 求最大数
# 1.生取最后一个
list.sort()
list[-1]

# 2. 降序取第一个
list.sort(reverse=True)
list[0]

# 3.假设法:取列表中第一个数x,与列表中的数一个个对比,若该数b比x大,则将该数赋给x

# 删除列表中的空字符串

# 1.for 循环删除
# 注意:在使用for....in时 尽量不要对元素进行增删操作
	for val in list:
        if val == '':
            words.remove(val)

# 2.whil 循环
i = 0
whil i < len(list):
    if list[i] == '':
		list.remove(list[i])
        i -= 1
    i += 1
    
# 3.生成新列表
i = 0
while i < len(list):
	if val != '':
        list2.append(val)

列表的嵌套

list = [val, val, [list2], val, val]	# 类似多维数组

# 使用for 循环进行带下标的遍历  i 为下标
for i, val in enumerate(list):
    ........

列表推导式

# 使用简单的列表实现列表的创建
list = [i for i in range(10)]

# 列表推导式加条件
list = [i for i in range(10) if i % 2 == 0]

# 双循环
list = [(x, y) for x in range(5, 9) for y in range(10, 20)]

列表的复制

# 深拷贝和浅拷贝

# 浅拷贝
list = list1.copy()  # 浅拷贝,内容一样但不是同一个对象
list = copy.copy(list1)
# 在列表嵌套中,浅拷贝只拷贝一层,内层嵌套的列表使用的是内存指向的方式

# 深拷贝  完全复制
list = copy.deepcopy(list1)

元组

# 元组: 用于表示多个数据,与列表类似   tuple = (val, val, .., val)
# 区别: 列表元素可变, 元组元素不可变
# 只有index 和 count
tuple.index(val)	# 查找元素的下标
tuple.count(val)	# 查看元素的出现次数

# 其他类型转元组
tuple(iter)  # 需要传入可迭代对象

# 列表转元组
tuple(list)
list(tuple)

# 字符串连接元组
'*'.join(tuple)  # 元组内的元素必须为字符串, 字符串以*分割

# 元组遍历
for i in tuple:
    .......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值