python-list

Python - 列表

  1. list

    列表的数据项不需要具有相同的类型

    List(列表) 是 Python 中使用最频繁的数据类型。

    列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

    两个数组一模一样也是两个数组,不能比较,只能比较内容

  2. 列表取值

    列表用 [ ] 标识,是 python 最通用的复合数据类型。

    列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

    加号 + 是列表连接运算符,星号 * 是重复操作。

    list=[1,3,5,7,9,11]
    print list               # 输出完整列表
    print list[:]
    print list[0]            # 输出列表的第一个元素
    print list[-1]           # 输出列表的最后一个元素
    print list[1:3]          # 输出第二个至第三个元素
    print list[2:]           # 输出从第三个开始至列表末尾的所有元素
    print list[:5]
    print tinylist * 2       # 输出列表两次
    print list + tinylist    # 打印组合的列表
    
    for item in range(len(arr)):
       print(arr(item))
    
    for item in arr:        #遍历数组
       print(item)
    

    分页流程demo

    page_count=2#每页几个
    page_index=1#当前页
    m=len(books)/page_count
    n=len(books)//page_count#向下取整
    pages=n if m==n else n+1 #总页面
    books_index=books[(page_index-1)*page_count:page_index*page_count]#显示第一页
    print(books_index)
    
  3. list 操作

    fruits = ['orange', 'apple', 'pear', 'banana']
    
    # 统计
    # print (fruits.count('apple'))
    # 判断是否存在
    # print (fruits.index('apple'))
    # 从第三个位置开始寻找
    # print (fruits.index('apple',3))
    # 反转,反的是自己,不能赋给别人
    # fruits.reverse()
    # f=fruits[::-1]#反转之后给别人,切片没有操作数据的能力
    # fruits.sort()#排序
    
  4. 列表方法

    fruits = ['orange', 'apple', 'pear', 'banana']
    
    # 增加元素(从后面加入)
    # fruits.append('kiwi')
    # 增加集合
    # fruits.extend(['kiwi','water'])
    # 合并两个列表(可以在前面加,也可以在后面加)
    # new_fruits=fruits+['kiwi','water']
    # new_fruits=['kiwi','water']+fruits
    # 插入元素(第一个是索引,这种方法开销很大,插入后若空间不够要移到其它空间)
    # fruits.insert(0,'pick');
    
    # 删除元素(若apple没有会报错)
    # fruits.remove('apple')
    # del fruits[1]
    # fruits[2:4]=[]
    # 删除列表末尾的元素
    # fruit表s.pop()
    
    # 替换元素
    # fruits[0:3]=['橙子','苹果','梨']
    
    # 清空元素
    # fruits.clear()
    # del fruits[:]  #不同于del fruits
    # fruits[ : ]=[]
    
    # 判断是否存在
    # print('apple' in fruits)
    
    # 最大最小值
    # print(max(fruits))
    # print(min(fruits))
    
  5. 栈和队列

    # -*- coding: UTF-8 -*-
    from collections import deque
    fruits = ['orange', 'apple', 'pear', 'banana']
    from collections import deque
    queue = deque(fruits)
    
    # 先进先出:队列
    queue.append('haha')
    queue.popleft()
    
    # 先进后出
    queue.append('')
    queue.pop()
    
    print(list(queue))
    

    模糊查询图书demo

    books=['三国演义','西游记','三国志','三国杀','水浒传']
    result_book = []
    display=','.join(books)
    print(display)
    while True:
        con = input('请搜索\n')
        if con=='exit':
            break
        else:
            result_book.clear()
            for book in books:
                if con in book:
                    result_book.append(book)
            print(result_book)
    

    二维数组:图书按价格排序demo

    books=[
        ['三国演义','罗贯中',160,'三国出版社',120],
        ['西游记','吴承恩',80,'西天出版社',10],
        ['三国志','陈寿',130,'三国出版社',20],
        ['三国杀','腾讯',500,'企鹅出版社',120],
        ['王者荣耀','腾讯',200,'企鹅出版社',20],
        ['水浒传','施耐庵',100,'梁山出版社',10]
    ]
    arr=[]                               #用于存放价格排序和索引
    for i in range(len(books)):
        li=[books[i][2],i]
        arr.append(li)
    arr.sort()
    print(arr)
    result_list=[]
    for item in arr:                     #item->[80,1]
        i=item[1]
        result_list.append(books[i])
    print(result_list)
    
  6. 列表初始化

    squares=[]
    squares=[x**2 for x in range(10)]
    vec = [-4, -2, 0, 2, 4]
    vec2=[x*2 for x in vec]
    vec3=[x for x in vec if x >= 0]
    vec4=[abs(x) for x in vec]
    
    print ([(x, x**2) for x in range(6)])
    

    补充:map()

    map() 会根据提供的函数对指定序列做映射。

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

    arr=[1,2,3,4]
    mm=map(lambda x:x ** 2,arr)
    print(next(mm))
    for res in mm:
        print(res)
    

    去掉列表元素单词左右空格

    freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
    # 去掉单词左右空格
    freshfruit=[weapon.strip() for weapon in freshfruit]
    
  7. 排序

    • 冒泡法
    list01=[6,9,3,4,2,7,5]
    i=0
    length=len(list01)
    while i<length-1:                    #剩一个的时候不用再来一轮,所以是长度减一
        j=0
        while j<length-1-i:              #每一次都把最大值放在最后,所以在下一轮去掉已经在后面排好的数据个数
            if list01[j]>list01[j+1]:    #每一个数据和下一个比较
                t=list01[j]
                list01[j]=list01[j+1]
                list01[j+1]=t
            j=j+1
        i=i+1
    print(list01)
    
    • 选择法
    list02=[2,1,7,4,3,9,5]
    length=len(list02)
    i=0
    while i<length-1:         #除去最后一个
        j=i+1                 #与下一个比较
        min_position=i        #用于记录最小值的位置
        while j<length:
            if list02[min_position]>list02[j]:
                min_position=j#如果找到较小值就记下位置
            j=j+1
        t=list02[i]
        list02[i]=list02[min_position]
        list02[min_position]=t
        i=i+1
    print(list02)
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值