• Python_base_01 列表、元组和字典


    列表:List ,是使用最频繁的数据类型,在其他语言中通常叫做数组。

    1.存储一串信息

    2.列表用[ ] 定义,用逗号分隔。

    3.列表的索引从0开始。

    name_list=["zhangsan","lisi","wangwu"]

    #取值和取索引
    print(name_list[2])

    输出结果:wangwu

    #知道列表的内容,想确定数据在列表中的位置
    print(name_list.index("lisi"))

    输出结果:1

    #修改
    name_list[1]="李四"
    print(name_list)

    输出结果:['zhangsan', '李四', 'wangwu']

    #增加
    name_list.append("tianpin ") # append 向列表的末尾追加 →['zhangsan', '李四', 'wangwu', 'tianpin ']
    name_list.insert(0,"xiaopin") # insert 向指定位置插入数据 →['xiaopin', 'zhangsan', '李四', 'wangwu', 'tianpin ']

    temp_list=["孙阳"]
    name_list.extend(temp_list) # extend 把另一个列表的完整内容追加到当前列表的末尾

    输出结果:
    ['xiaopin', 'zhangsan', '李四', 'wangwu', 'tianpin ', '孙阳']

    #删除
    motorcyles=['honda','yamaha','suzuki']

    last_owned=motorcyles.pop()
    print(last_owned) #输出 suzuki pop()可删除列表末尾的元素,并让你能够接着使用它的值。


    name_list.pop(2) # pop 可以指定删除元素的索引
    print(name_list)

    name_list.clear() # clear 清空列表
    print(name_list)

    如果只知道要删除的元素的值,可使用方法 remove()
    del name_list[1]  #del 将变量从内存中删除

    #有单词都是以大写开始
    bicys=['trek','cannmojd','resline']
    print(bicys[0]) #输出 teck

    print(bicys[0].title()) #输出 Trek
    列表的数据统计:
    name_list=["zhangsan","lisi","wangwu"]

    #len (length统计列表的元素的总数)
    list_len=len(name_list)

    print("列表中包含%d个元素" %list_len)

    输出结果:列表中包含3个元素

    #count
    count=name_list.count("张三")

    print("张三出现了 %d 次" %count)

    输出结果:张三出现了 0 次
    列表的排序:
    name_list=["zhangsan","lisi","wangwu"]
    num_list=[6,8,4,1,10]

    #升序
    name_list.sort()
    num_list.sort()

    print(name_list)
    print(num_list)

    输出结果:
    ['lisi', 'wangwu', 'zhangsan']
    [1, 4, 6, 8, 10]

    #降序
    name_list.sort(reverse=True)
    num_list.sort(reverse=True)

    print(name_list)
    print(num_list)

    #逆序 
    name_list=["zhangsan","lisi","wangwu"]
    num_list=[6,8,4,1,10]
    name_list.reverse()
    num_list.reverse()

    print(name_list)

    print(num_list)

    输出结果:
    ['wangwu', 'lisi', 'zhangsan']
    [10, 1, 4, 8, 6]
    #使用迭代遍历列表
    name_list=["张三","李四","王五","王小二"]
    遍历就是从头到尾依次从列表中获取数据
    #for 循环内部使用的遍历 in 列表:

    for my_name in name_list:
    print("我的名字是 %s" %my_name)

    输出结果:

    我的名字是 张三
    我的名字是 李四
    我的名字是 王五
    我的名字是 王小二

    #将列表中每个数值乘以3
    vec=[2,4,6]
    print([3*x for x in vec])

    结果:[6, 12, 18]

    还可以玩点新花样,如下:
    vec=[2,4,6]
    print([[x,x**2] for x in vec])
    结果:[[2, 4], [4, 16], [6, 36]]

    #可以使用if子句作为过滤器,如下:
    vec=[2,4,6]
    print([3*x for x in vec if x > 3])

    结果:[12, 18]


    #列表的应用场景

    尽管python的列表中可以存储不同类型的数据
    但是在开发中,更多的应用场景是
    1.列表存储相同类型的数据
    2.通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作。


    元组: tuple 与列表类似,不同之处在于元组不能修改。

    1.存储一串信息,通常保存不同类型的数据;

    2.列表用()定义,用逗号分隔;

    3.列表的索引从0开始。

    #定义一个只包含一个数据的元组 可用 print(type(single_tuple))打印类型
    single_tuple=(5,)
    info_tuple=("zhangsan",18,1.75)

    #取值和取索引

    print(info_tuple[0])
    print(info_tuple.index("zhangsan"))

    输出结果:
    zhangsan
    0
    #统计某个数据出现的次数
    info_tuple=("zhangsan",18,1.75,"zhangsan")
    print(info_tuple.count("zhangsan"))

    输出结果:
    2

    #统计元组中包含元素的个数
    info_tuple=("zhangsan",18,1.75,"zhangsan")
    print(len(info_tuple))
    输出结果:
    4
    #循环遍历
    info_tuple=("zhangsan",18,1.75,"zhangsan")

    for my_info in info_tuple:

    #使用格式字符串拼接 my_info 这个变量不方便
    #因为元组中保存的数据类型是不同的
    print(my_info)
    #应用场景
    1.函数的参数和返回值;
    2.格式字符串,格式化字符串后面的()本质上就是一个元组;
    3.让列表不可被修改,以保护数据安全。

    #格式化字符串的()本质上就是元组

    print("%s 年龄是%d,身高是%.2f" %("小明",18,1.75))

    输出结果:小明 年龄是18,身高是1.75

    info_tuple=("小明",18,1.75)

    print("%s 年龄是%d,身高是%.2f" %info_tuple)
    #列表转换成元组

    num_list=[1,2,3,4]

    num_tuple=tuple(num_list)

    print(type(num_tuple))

    输出结果:
    <class 'tuple'>

    字典:dictionary 是除列表外python中最灵活的数据类型。

    1.和列表的区别:

    列表是有序的对象集合
    字典是无序的对象集合

    2.字典用{}定义
    3.字典使用键值对存储数据,键值之间使用:分隔;键必须是唯一的;值可以取任何数据类型,但键只能使用字符串、数字和元组.

    xiaoming_dict={"name":"小明"}

    #取值
    print(xiaoming_dict["name"])

    #增加/修改
    xiaoming_dict["age"]=18 #如果key不存在,会新增键值对

    print(xiaoming_dict)

    输出结果:

    {'name': '小明', 'age': 18}

    xiaoming_dict["name"]="小小明"  #如果key存在,会修改键值对
    print(xiaoming_dict)

    输出结果:{'name': '小小明', 'age': 18}

    #删除

    xiaoming_dict.pop("name")
    print(xiaoming_dict)

    #字典的应用场景
    #使用多个键值对,存储描述一个物体的相关信息
    #将 多个字典 放在一个列表中,再进行遍历

    card_list=[
    {"name","张三",
    "QQ","1234567",
    "phone","110"},
    {"name", "李四",
    "QQ", "12345678",
    "phone", "1100"},
    ]

    for my_card in card_list:
    print(my_card)

    输出结果:

    {'name', '1234567', 'QQ', '110', 'phone', '张三'}
    {'name', '李四', 'QQ', 'phone', '1100', '12345678'}







     


     
  • 相关阅读:
    LG P3975 [TJOI2015]弦论
    LG P5056 【模板】插头dp
    LG P5279 [ZJOI2019]麻将
    BZOJ3864 Hero meet devil
    [NOIP模拟]相遇/行程的交集
    LG P3196 [HNOI2008]神奇的国度
    LG P3312 [SDOI2014]数表
    python pip 安装包的时候出现的各种错误。一句话解决。
    CTF入门
    Pythoncharm安装
  • 原文地址:https://www.cnblogs.com/tianpin/p/10071953.html
Copyright © 2020-2023  润新知