Python基础之列表

Python基础之列表,第1张

Python基础之列表 列表定义

列表相当于其它语言中的数组

lst = ['hello', 'world', 98]
print(id(lst))#1868570574784
print(type(lst))#
print(lst)#['hello', 'world', 98]

列表的创建
  • 使用中括号
  • 使用内置函数list()
lst = list(['hello', 'world', 98])
列表的特点
  • 按顺序有序排序

  • 索引映射唯一一个数据(类似于数组的下标)

    • 可以按照0,1, 2……索引

    • 可以负数索引

      lst = list(['hello', 'world', 98])
      print(lst[2])#98
      print(lst[-1])#98
      
  • 可以存储重复数据

  • 任意数据类型混存

  • 根据需要动态分配和回收内存

获取列表 获取指定元素的索引
lst = list(['hello', 'world', 98, 'hello'])
print(lst.index['hello'])#如果列表中有相同元素只返回列表中相同元素的第一个元素的索引

print(lst.index('hello',1,3))#在索引为1的到索引为2的范围内查找元素索引
获取列表中的单个元素
#正向索引0到N-1
lst = list(['hello', 'world', 98, 'hello', 'world',234])
print(lst[2])#98
#逆向索引-N到-1
print(lst[-3])#hello
获取列表中的多个元素
语法格式
列表名[start:stop:step]
切片 *** 作
  • 切片结果:对原列表片段的拷贝

    lst = [10, 20, 30, 40, 50, 60, 70, 80]
    print('原列表:', id(lst))#原列表: 1705134473152
    lst2 = lst[1:6:1]
    print('切的片段:', id(lst2))#切的片段: 1705179563904
    
  • 切片的范围:[start : stop]

  • step的默认值为1:可以简写为[start : stop :]

  • step为正数:

    #不写start默认从0开始
    print(lst[:6:1])#[10, 20, 30, 40, 50, 60]
    
    #不写stop默认读取到最后
    print(lst[1::1])#[20, 30, 40, 50, 60, 70, 80]
    
  • step为负数:向前读取

    #不写start和stop,步长为-1时,列表逆序输出
    print(lst[::-1])#[80, 70, 60, 50, 40, 30, 20, 10]
    
列表的判断和遍历

判断

元素	in	列表名
元素	not in	列表名

遍历

for 迭代变量 in 列表名:

#lst = [10,100,'hello']
for item in lst:
	print(itme)
'''输出结果:
10
100  
hello
'''
列表的增删改 增加

---------------------append()-----------------------
lst = [10, 20, 30]
print("添加前:", lst)#添加前: [10, 20, 30]

lst.append(100)
print("添加后:", lst)#添加后: [10, 20, 30, 100]

lst2 = ['hello', 'world']
lst.append(lst2)
#将lst2作为一个整体添加到lst中
print(lst)#[10, 20, 30, 100, ['hello', 'world']]

---------------------extend()-----------------------
#将lst2中的元素添加到lst中
lst.extend(lst2)
print(lst)#[10, 20, 30, 100, 'hello', 'world']

---------------------insert()-----------------------
#在任意位置上添加元素
lst.insert(1,90)
print(lst)#[10, 90, 20, 30, 100, 'hello', 'world']

---------------------切片-----------------------
lst3 = [True, False, 'hello']
lst[1:]=lst3
print(lst)#[10, True, False, 'hello']
删除

---------------------remove()-----------------------
lst = [10, 20, 30, 40, 50, 60, 30]
lst.remove(30)#从列表中移除一个元素,如果有重复元素只移除第一个
print(lst)#[10, 20, 40, 50, 60, 30]

---------------------pop()-----------------------
#pop()根据索引移除元素
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] = []#将下标1~2的元素用空列表代替
print(lst)
修改
  • 为指定索引元素赋一个新值

    lst[索引] = 值
    
  • 为指定的切片赋一个新值

    print(lst)#[10, 40, 50, 60]
    #将索引1~2的用100, 200, 300, 400替换掉
    lst[1:3] = [100, 200, 300, 400]
    print(lst)#[10, 100, 200, 300, 400, 60]
    
列表的排序 *** 作
  • 调用sort()方法,默认从小到大排序,指定reverse=True进行降序排序

    lst = [20, 40, 10, 98, 54]
    print('排序前的列表:', lst)#排序前的列表: [20, 40, 10, 98, 54]
    lst.sort()
    print('排序后的列表:', lst)#排序后的列表: [10, 20, 40, 54, 98]
    
    #使用关键字
    lst.sort(reverse=True)
    print(lst)#[98, 54, 40, 20, 10]
    
  • 调用内置函数sorted(),可以指定reverse=True进行降序排序,原列表不发生改变

    lst = [20, 40, 10, 98, 54]
    new_lst = sorted(lst)
    print('lst:', lst)#lst: [20, 40, 10, 98, 54]
    print('new_lst:', new_lst)#new_lst: [10, 20, 40, 54, 98]
    
    desc_lst = sorted(lst, reverse=True)
    print('desc_lst:', desc_lst)#desc_lst: [98, 54, 40, 20, 10]
    
列表生成式

lst = [i for i in range(1, 10)]#[1, 2, 3, 4, 5, 6, 7, 8, 9]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4680155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-07

发表评论

登录后才能评论

评论列表(0条)

保存