python 列表

python 列表

  • 创建列表(两种方法)
  • 索引(下标)
  • 切片 ( not )in
  • 判断指定元素在列表中是否存在
  • 增 lst.append(), lst.extend(), lst.insert(),
  • 删 lst.remove(), lst.pop(),lst.clear(),del lst
  • 排序 lst.sort(), sorted()
  • 列表生成式 [表达式 for i in 可迭代对象]

# =============== 创建列表,法一:[]  法二:内置函数list
lst = ['black',123,'stones','black']
lst2 = list(['black',123,'stones'])
lst3 = []
lst4 = list()

# =============== 获取元素索引(下标): lst.index()
print(lst.index('black')) # 0 返回找到的第一个的索引
# print(lst.index('bili')) #error not in list
print(lst.index('black',1,4)) # 3 从索引为1查到索引为3

# 索引获取单个元素
print(lst[0])  # black 正向索引:0 ~ N-1
print(lst[-4]) # black 逆向索引:-N ~ -1

# =============== 切片获取多个元素  lst [ start: stop: step ]
lst = [10,20,30,40,50,60,70,80]
print(lst[1:5]) # [20,30,40,50] 默认步长为1
print(id(lst))
print(id(lst[1:5])) # 切片的结果 为原列表片段的拷贝(新对象)
print(lst[1:6:2])   # [20,40,60]
print(lst[ :6:2])   # [10,30,50]
print(lst[1: :2])   # [20,40,60,80]
print(lst[ : :-1])  # [80, 70, 60, 50, 40, 30, 20, 10]
print(lst[7:0:-1])  # [80, 70, 60, 50, 40, 30, 20]

# =============== 判断指定元素在列表中是否存在(查)
lst = [10,20,30,40,50,60,70,80]
print(10 in lst) # True
print(100 not in lst) # True
# 列表遍历
for i in lst:
    print(i,end='\t')
print('\n')

# =============== 增删改
# 增
lst = [10,20,30]
lst.append(40) # 在末尾添加一个元素
print(lst)    # [10, 20, 30, 40]
lst2 = ['black','stones']
lst.append(lst2)
print(lst)    # [10, 20, 30, 40, ['black', 'stones']]
lst.extend(lst2) # 在末尾添加多个元素
print(lst)    # [10, 20, 30, 40, ['black', 'stones'], 'black', 'stones']
lst.insert(1,90) # 在任一位置添加一个元素
print(lst)    # [10, 90, 20, 30, 40, ['black', 'stones'], 'black', 'stones']
# 切片(替换)
lst3 = ['A','B',True]
lst[1:] = lst3
print(lst)    # [10, 'A', 'B', True]

# 删
lst = [10,20,30,40,50,60,30]
lst.remove(30) # 删除值为...的一个元素(从前往后删除)
print(lst)     # [10,20,40,50,60,30]
lst.pop(1)     # 根据索引(下标)移除元素
print(lst)     # [10,40,50,60,30]
lst.pop()      # 默认删除最后一个元素
print(lst)     # [10,40,50,60]
# 切片
new_lst = lst[1:3]  # 删除(保留),将产生新的列表对象
print(new_lst) # [40,50]
print(lst)     # [10,40,50,60]
lst[1:3] = []  # 若不想产生新的列表对象,而是删除原表的内容
print(lst)     # [10,60]
lst.clear()    # 清楚列表的所有元素
print(lst)
del lst        # 删除列表对象
# print(lst)   # error:你都让人对象删除了

# 改
lst = [10,20,30,40]
lst[2] = 100   # 修改一个值
print(lst)     # [10, 20, 100, 40]
lst[1:3] = [200,300,400,500,600]
print(lst)     # [10, 200, 300, 400, 500, 600, 40]

# =============== 排序
# 调用sort(), 不产生新对象
lst = [10,40,20,60,40,50]
print('排序前:', lst, id(lst)) # 排序前: [10, 40, 20, 60, 40, 50] 2984031797960
lst.sort()     # 默认升序,排序没有创建新的列表
print('排序后:', lst, id(lst)) # 排序后: [10, 20, 40, 40, 50, 60] 2984031797960
lst.sort(reverse = True) # 降序
print(lst)     # [60, 50, 40, 40, 20, 10]

# 内置函数sorted() 会产生新的列表对象
lst = [10,40,20,60,40,50]
new_lst = sorted(lst)
print(lst)     # [10, 40, 20, 60, 40, 50]
print(new_lst) # [10, 20, 40, 40, 50, 60]
desc_lst = sorted(lst, reverse=True) #降序
print(desc_lst) # [60, 50, 40, 40, 20, 10]

# =============== 列表生成式 [表达式 for i in 可迭代对象]
lst = [i for i in range(1,10)]
lst2 = [i*i for i in range(1,10)]
print(lst)     # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst2)    # [1, 4, 9,16,25,36,49,64,81]
# 创偶数列2 4 6 8 10
lst = [i*2 for i in range(1,6)]
print(lst)     # [2, 4, 6, 8, 10]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值