Python学习自用笔记(pycharm)cha6.列表

2023.04.16
在这里插入图片描述

笔记代码部分

# Date : 2023/4/16 16:05
# File : 4.46_cha6.py
'''-----------------列表-----------------'''
lst = ['hello', 'world', 98]
print(id(lst))  # 2837983805768
print(type(lst))  # <class 'list'>
print(lst)  # ['hello', 'world', 98]
print()

'''列表创建的第一种方式,使用[]'''
lst = ['hello', 'world', 98]
print('打印输出lst:', lst)
print('打印lst[0]:', lst[0])
print('逆向索引,打印lst[-1]:', lst[-1])
print()

'''列表创建的第二种方式,使用内置函数list()'''
lst2 = list(['hello', 'world', 98])
print()

'''索引index()'''
print('''打印lst.index('hello'):''', lst.index('hello'))
print('''打印lst.index('hello',0,3)''', lst.index('hello', 0, 3))  # 从0到2位置寻找hello,并输出位置序号
print()

'''获取列表中的多个元素------切片
 列表名[start:stop:step]'''
lst = [10, 20, 30, 40, 50, 60, 70, 80]
lst2 = lst[1:6:2]
print('打印lst[1:6:2]', lst2)
print('''打印lst[:6:2]''', lst[:6:2])
print('''打印lst[1::2]''', lst[1::2])
print('''打印lst[::2]''', lst[::2])
print()

print('''-----step为负数的情况------''')
print('打印lst[::-1]', lst[::-1])  # 逆序输出
print('打印lst[7::-1]', lst[7::-1])
print('打印lst[6::-2]', lst[6::-2])
print()

'''遍历列表中的元素traverse elements in a list'''
for i in lst:
    print(i, end='\t')
print()
print()

'''------------列表元素的增删改操作------------------'''
'''append() 在列表的末尾添加一个元素'''
lst = [10, 20, 30]
print('添加元素之前:', lst, id(lst))
lst.append(100)
print('添加元素之后:', lst, id(lst))
print()

'''extend()在列表的末尾添加至少一个元素'''
lst2 = ['hello', 'world']
lst.extend(lst2)
print('将lst的末尾添加lst2的元素', lst)
print()

'''insert() 在列表的任意位置添加一个元素'''
lst.insert(1, 90)
print('在指定位置(1号位置)添加元素90', lst)
print()

'''切片--在列表的任意位置添加至少一个元素'''
lst3 = [True, False, 'hello']
lst[1:] = lst3
print('从1位置开始切片,把lst3的元素添加到lst中', lst)
print()

'''-----------列表元素的删除操作----------'''
'''remove()一次删除一个'''
lst = [10, 20, 30, 40, 50, 60, 30]
lst.remove(30)
print('移除30', lst)  # 如果有多个待删除元素,只删除第一个
print()

'''pop() 删除一个指定索引位置上的元素,不指定索引的话,删除列表最后一个元素'''
lst.pop(1)
print('删除索引位置1的元素', lst)
lst.pop()
print('如果不指定索引位置,则默认删除最后一个元素', lst)
print()

'''切片操作,-删除至少一个元素,将产生一个新的列表对象'''
new_lst = lst[1:3]
print('原列表lst', lst)
print('切片后的列表', new_lst)
print()

'''不产生新的列表对象,而是删除原列表中的内容'''
lst[1:3] = []
print('使用空列表替代想要删除的部分', lst)
print()

'''clear()清空列表的所有元素'''
lst.clear()
print('lst.clear():', lst)
print()

'''del语句回想列表对象删除'''
del lst
# print(lst)  # NameError: name 'lst' is not defined

'''-----------列表的修改----------'''
lst = [10, 20, 30, 40]
lst[2] = 100
print('lst[2] = 100:', lst)
print()

lst[1:3] = [300, 400, 500]
print('lst[1:3] = [300, 400, 500]:', lst)
print()

'''----------列表的排序操作--------------'''
lst = [20, 40, 10, 98, 54]
print('before sort:', lst, id(lst))
lst.sort()
print('after sort:', lst, id(lst))
print()

print('reverse=True是降序排序;reverse=False是降序排序,不指定的话默认是False')
lst.sort(reverse=True)
print('lst.sort(reverse=True):', lst)
lst.sort(reverse=False)
print('lst.sort(reverse=False):', lst)
print()

print('---------使用内置函数sort()对列表进行排序,将产生一个新的列表对象--------------')
lst = [20, 40, 10, 98, 54]
new_lst = sorted(lst)
print('原列表', lst)
print('sorted(lst)', new_lst)
new2_lst = sorted(lst, reverse=True)
print('原列表', lst)
print('sorted(lst,reverse=True):', new2_lst)
print()

'''--------------列表生成式------------'''
lst = [i for i in range(1, 10)]
print(lst)
lst = [i * i for i in range(1, 10)]
print(lst)
print()

print('生成列表元素是2 4 6 8 10')
lst = [2 * i for i in range(1, 6)]
print(lst)

运行结果

C:\Anaconda\envs\pytorch_py37\python.exe D:\python\4.46_cha6.py 
2146460844360
<class 'list'>
['hello', 'world', 98]

打印输出lst: ['hello', 'world', 98]
打印lst[0]: hello
逆向索引,打印lst[-1]: 98


打印lst.index('hello': 0
打印lst.index('hello',0,3) 0

打印lst[1:6:2] [20, 40, 60]
打印lst[:6:2] [10, 30, 50]
打印lst[1::2] [20, 40, 60, 80]
打印lst[::2] [10, 30, 50, 70]

-----step为负数的情况------
打印lst[::-1] [80, 70, 60, 50, 40, 30, 20, 10]
打印lst[7::-1] [80, 70, 60, 50, 40, 30, 20, 10]
打印lst[6::-2] [70, 50, 30, 10]

10	20	30	40	50	60	70	80	

添加元素之前: [10, 20, 30] 2146466417800
添加元素之后: [10, 20, 30, 100] 2146466417800

将lst的末尾添加lst2的元素 [10, 20, 30, 100, 'hello', 'world']

在指定位置(1号位置)添加元素90 [10, 90, 20, 30, 100, 'hello', 'world']1位置开始切片,把lst3的元素添加到lst中 [10, True, False, 'hello']

移除30 [10, 20, 40, 50, 60, 30]

删除索引位置1的元素 [10, 40, 50, 60, 30]
如果不指定索引位置,则默认删除最后一个元素 [10, 40, 50, 60]

原列表lst [10, 40, 50, 60]
切片后的列表 [40, 50]

使用空列表替代想要删除的部分 [10, 60]

lst.clear(): []

lst[2] = 100[10, 20, 100, 40]

lst[1:3] = [300, 400, 500]: [10, 300, 400, 500, 40]

before sort: [20, 40, 10, 98, 54] 2146466417544
after sort: [10, 20, 40, 54, 98] 2146466417544

reverse=True是降序排序;reverse=False是降序排序,不指定的话默认是False
lst.sort(reverse=True): [98, 54, 40, 20, 10]
lst.sort(reverse=False): [10, 20, 40, 54, 98]

---------使用内置函数sort()对列表进行排序,将产生一个新的列表对象--------------
原列表 [20, 40, 10, 98, 54]
sorted(lst) [10, 20, 40, 54, 98]
原列表 [20, 40, 10, 98, 54]
sorted(lst,reverse=True): [98, 54, 40, 20, 10]

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81]

生成列表元素是2 4 6 8 10
[2, 4, 6, 8, 10]

进程已结束,退出代码0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值