zoukankan      html  css  js  c++  java
  • day03 列表、元组、字典、字符串、文件操作

    1.list列表的操作

    #list 列表

    stu_name=["stu1","stu2","stu3",1,1.5]
    #list下标
    print(stu_name[0])
    #list的增删改查
    #1.增,append()向list末尾添加元素,insert指定位置添加元素
    stu_name.append("stu4")
    stu_name.insert(2,"stu0") #添加到指定位置
    print(stu_name)
    #改
    stu_name[0]="牛教授"
    print(stu_name)
    #删 1.pop()把整个列表中末尾的元素删除,也可以传指定的元素pop(2),如果传一个不存在的下标程序会报错
    # 2.remove(元素) 直接删除元素,如果有一样的元素,只会删除第一个,如果元素不存在也会报错

    # stu_name.pop()
    # print(stu_name)
    # stu_name.pop(2)
    # print(stu_name)
    # stu_name.remove("牛牛")
    # print(stu_name)
    # 3.del 删除也是一样

    del stu_name[-1] #del还可以删除变量
    print(stu_name)

    #查,直接用下标来取stu_name[],count()方法是查询元素在列表中出现的次数

    my_list=[1,"hah",2,1.5]
    print(stu_name.count("stu2"))
    #list列表常见的方法
    print(my_list.index(1)) #通过元素查找下标
    my_list.reverse() #将list反转,没有返回值,改变的是原数组排序
    print(my_list)
    my_list.clear() #clear()是清空列表 ,没有返回值
    print(my_list)
    nums=[1,99,0,3]
    nums.sort(reverse=True) #sort方法是对list进行排序,列表中数据类型一致时,才能进行比较;如果reverse=True就是降序
    print(nums)

    my_list.extend(nums) #extend()方法就是将列表1添加到列表2中
    print(my_list)


    #多维数组
    # nums=[1,2,3,4,["一","二",["a","b","c"]],[6,7]]
    #
    # print(nums[4][2][1])
    2.循环读取列表的值

    1)使用for循环
    passed=["123456","123456","123457","123"]

    index=0
    for i in passed:
    passed[index]="abc_"+p
    index+=1


    2)使用枚举函数enumerate循环列表中的数据,并修改

    for index,p in enumerate(passed):
    passed[index]="abc_"+p
    print(index,p)
    print(passed)

    3.切片操作
    切片适用于list、字符串
    # l=list(range(1,11))
    #
    # print(l[0:4]) #切片取头不取尾
    # print(l[:5]) #如果冒号之前没写的时候从0开始取
    # print(l[4:]) #如果冒号没写的话取到最后
    # print(l[0:5:2])
    #
    # print(l[::2]) #步长代表隔了几个数取一次
    #
    # print(l[::-2])#步长为正数从左往右,负数时从右往左

    切片练习:回文算法 s="上海自来水来自海上"

    s=input("请输入字符串:")
    if s==s[::-1]:
    print(s+"是回文")
    else:
    print(s+"不是回文")

    4.元组
    #元组也是个列表,但是不可修改的,不可变的

    # my_tuple=("192.168.1.102","3306","root","123456")

    l=[1]
    t=(1) #必须加逗号,不然生成不了元组,t为int数据类型,要变成元组必须写成t=(1,)
    print(type(t),type(l))

    5.字典,是以k_v对应的形式存储数据,通过key取到values值时,查询速度快
    
    
    student={"name":"小黑","age":"18"}

    #1、取值
    print(student["name"])

    #两种方法都可以,假如get不到key值时不会报错,返回NONE。而且可以在后面加一个默认值,如下:
    #如果get不到name对应的value值时,默认返回‘小明’
    print(student.get("sex","男"))

    #获取字典中所有的key和value
    print(student.keys())
    print(student.values())

    #2、增加/修改
    student["sex"]="男"

    print(student)
    #通过去key的增加或者修改字段,如果存在就会修改对应的value值
    student["name"]="小明"
    #如果key已经存在,使用setdefault方法不会修改原来key对应的value值
    student.setdefault("name","小白")
    print(student)

    #3、删除
    #使用del关键字删除字典中的值

    del student["name"]

    print(student)

    #使用pop(key)方法随机删除字段中的元素
    student.pop("age")
    print(student)
    #使用clear()清空字典
    # student.clear()
    print(student)

    #4、字典的其他方法和遍历

    #update()方法,把一个字典添加到另外一个字典

    student1={"name":"无双","sex":"女"}

    student.update(student1)

    print(student)

    #字典遍历
    #第一种方式
    for key in student1:
    print(student1.get(key))

    #第二种方式

    for k,v in student1.items():
    print(k,v)

    #字典的嵌套中的取值、修改和删除
    all_stuss={
    "name": "小黑",
    "age": 28,
    "sex": "男",
    "addr": "北京",
    "cars":["宝马","五菱","ofo"]
    }
    print(all_stuss["cars"][1]) #一层层找到想要的数据
    all_stuss["cars"].append("膜拜") #添加数据
    print(all_stuss)

    print(all_stuss["cars"])
    all_stuss["cars"].remove("ofo")
    # all_stuss["cars"].pop(0)
    print(all_stuss)

    6.字符串操作
    username=" qwqwqwqwqqwqw "
    # print(username)
    # print(username.strip()) #去电字符串两边的空格和换行符,中间去不掉
    # print(username.upper()) #转换成大写
    # print(username.lower()) #转换成小写
    # print(username.capitalize()) #把首字母改成大写
    print(username.replace("l","123")) #替换字符
    filename='2.mp3'

    print(filename.endswith("mp3")) #字符串以什么结尾
    #split()分割


    print(filename.split(".")) #以""分割,返回列表

    7.文件操作
    1) 写模式

    f=open("user.txt",""w) #写模式会把原来文件中的东西都删掉

    2)追加模式
    f=open("user.txt","a+") #可以把写入的内容追加到文件末尾,如果要读文件
    f.seek(0) #移动文件指针获取文件所有内容
    print(f.read())
    3)读模式
    f.open("user.txt","r)

     




  • 相关阅读:
    树状数组基本操作
    P1802 5倍经验日 题解
    函数学习总结
    康托展开
    中国电信CDMA无线上网卡短信收发
    报错:无法获取实体类XXX对应的表名!
    javajvisualvm远程监控云服务器上的Tomcat8.5
    服务器防火墙开放端口
    报错:列"AGENT_ENTITY_NAME"的值太大(实际值: 60,最大值50) oracle VARCHAR2和NVARCHAR2的区别
    linux中查看端口是否被占用lsof i:port
  • 原文地址:https://www.cnblogs.com/zzzao/p/9535673.html
Copyright © 2011-2022 走看看