zoukankan      html  css  js  c++  java
  • for循环,列表,元组

    依旧是python基础

    for循环

    s = 'woeudbwieb'
    for i in s:#s代表可迭代对象
        print(i)
    if 'c' not in s:
        print('没有c')

    列表

    每个元素以逗号隔开,可以放任意的数据类型,有序
    切片和索引跟字符串相同

    常用操作

    # 增加
    li = ['jiang','chengcheng']
    li.append('judy')
    print(li)
    
    # 迭代增加
    li = ['jiang','cheng']
    li.extend('123')#参数为可迭代对象,分解成元素逐个添加到列表后面
    # 小练习,循环增加列表
    li = ['jiang','chengcheng']
    while 1:
        new = input('input new :')
        if new=='q':
            break
        else:li.append(new)
    print(li)
    # 插入
    li = ['jiang','chengcheng']
    li.insert(1,'12')#插入到索引值的前面
    print(li)
    # 删除
    li = ['jiang','chengcheng',1,2,3,4]
    li.pop() #按索引删除,默认删除最后一个,返回删除元素
    li.remove('dudu') #按元素删除,没有返回值
    li.clear() #清空列表
    del li #在内存中删除整个列表
    del li[2:]#切片删除
    # 修改
    li = ['jiang','chengcheng',1,2,3,4]
    li[2] = 'hlb'
    
    # 切片修改
    li[2:4] = 'i am beatiful girl'#任意多个字符
    print(li)
    # 排序(列表中元素是同一类型)
    list = [1,2,3,4,7,6,5,8,0,9]
    list.sort(reverse=True)#默认false->正向排序
    list.reverse()#反转
    # 列表嵌套
    list = [['jiang','cheng','cheng'],'is','a','beautiful','girl']
    #循环打印嵌套列表
    l = [1,2,3,5,'jcc',[1,5,3],'beauty']
    for i in l:
        if isinstance(i,list):
            for j in i:
                print(j)
        else:print(i)

    list在循环中删除的状况

    #测试循环中删除元素
    list1 = [1,2,3,4,5]
    for i in range(len(list1)):#进入循环时range(len(list1))的数值已经固定,[0,1,2,3,4]
        print(i)
        del list1[i]#i = 3时报错,IndexError: list assignment index out of range
        print(list1)
        
    for i in range(len(list1)):
        if i%2!=0:
            list1.remove(list1[i])
    print(list1)#虽然没有报错,但是结果是错误的
    #删除奇数位的元素
    #1.list的切片
    print(list1[::2])
    # 2.
    list2 = []
    for i in range(len(list1)):
        if i%2==0:
            list2.append(list1[i])
    list1 = list2
    print(list2)
    print(list1)

    元组

    可循环,可切片,不可修改

    可变数据类型:列表list,字典dict,集合set 不可hash
    不可变数据类型:元组tuple,bool,int,str 可hash

    常用操作

    tuple = (1,2,3,'jiang','cheng','cheng',['is','a','beautiful','girl'])
    tuple[0] = '1'#报错,不可修改
    tuple[6][2] = 'handsome'#可以修改

    join

    s = 'jcc'
    lis = ['1','2','3']#list里边只能放字符串,不能放数字,且不能嵌套
    s1 = '*'.join(lis)#可以放可迭代对象,以*连接元素,形成一个新的字符串

    range

    for i in range(0,10,2):#打印
        print(i)
    for i in range(10,1,-1):#倒叙打印2-10
        print(i)
    for i in range(1,10,-1):#不会报错,什么都不打印
        print(i)

    字典

    key必须是不可变数据类型
    优势:key值组成hash表,二分方法查找,查询速度快
    存储大量的关系型数据
    无序

    常用操作

    #字典 dict
    dic = {'age':19,'name':'jcc'}
    dic1 = {'age':22}
    #增加
    dic['high'] = 160
    dic.setdefault('weight',49)
    #修改
    dic['name'] = 'jiangcc'
    dic.update(dic1)#把dic1中的键值对更新到dic中,有就改,没有就不改
    dic.setdefault('weight',50)#不做改变,体重增加一公斤都不行
    #删除
    dic.pop('age')#删除有返回值,返回删除的元素
    dic.popitem()#随机删除
    dic.clear()#清空字典
    del dic['name']#删除键值对,没找不到会报错
    #
    dic.keys()#得到一个和列表相似的数据类型,把字典中的键放入
    dic.values()#得到一个和列表相似的数据类型,把字典中的值放入
    dic.items()#得到一个列表里边 嵌套多个元组
    View Code
    # 循环键值对
    for k,v in dic.items():
        print(k,v)
    print(dic.get('name1'))#如果没有查到不报错,返回None
    v = dic['name1']#查不到报错
    # 字典嵌套
    dic = {
        'name':['jcc','hlb'],
        'hobby':{
            'boy':'cool'
        },
        'age':18
    }
    dic['age'] = 16
    dic['name'].append('jiangchengcheng')
    dic['name'][0] = 'JCC'
    print(dic)
    View Code

    一些小知识

    # 用一行代码交换ab的值
    a,b = 1,2
    print(a,b)
    a,b = b,a
    print(a,b)
    #当数字在-5-256之间 创建多个数字的地址相同,因为有小数据池
    i1 = 6
    i2 = 6
    #内存地址相同
    i3 = 300
    i4= 300
    #内存地址不相同

    =,== is

    = ->赋值
    == ->比较值是否相等
    is ->比较内存地址是否相等
    id()-->查看内存地址

    17:42

  • 相关阅读:
    二维数组111
    基础笔记
    排序
    折半查找法2
    数组 最小值
    数组 求偶数
    数组 找下标
    数组
    阶乘与9 99 999 9999 99999...
    打印三角形
  • 原文地址:https://www.cnblogs.com/jiangchengcheng/p/9531177.html
Copyright © 2011-2022 走看看