美文网首页程序员
Python3学习笔记——元组、字典

Python3学习笔记——元组、字典

作者: equalsYU | 来源:发表于2018-06-18 16:16 被阅读0次

    元组

    1、元组的定义

    元组可以定义为:元素不可变的列表。
    请看下列代码:

    myList = [1, 2, 3]
    myTuple = (1, 2, 3)
    

    注意:列表的元素是用方括号“[]”括起来的,而元组用的是圆括号"()"
    我们无法修改元组中具体元素的值,

    myTuple = (1, 2, 3)
    myTuple[1] = 9
    print(myTuple)
    

    这样的代码会报错,如下:

    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-4-ef2ec00ec2ca> in <module>()
          1 myTuple = (1, 2, 3)
    ----> 2 myTuple[1] = 9
          3 print(myTuple)
    
    TypeError: 'tuple' object does not support item assignment
    

    错误原因是:元组对象并不支持元素赋值。但是我们却可以对整个元组对象赋值,元素类型或者元组长度不同时也是可以的。

    myTuple = (1, 2, 3)
    print("原始元组是:", myTuple)
    myTuple = (0.5, 8, 51, 6)
    print(myTuple)
    myTuple = ("python", 0.001, 72)
    print(myTuple)
    

    运行结果是

    原始元组是: (1, 2, 3)
    (0.5, 8, 51, 6)
    ('python', 0.001, 72)
    

    像列表一样,元组也能使用for循环进行遍历,元组也能嵌套。

    2、元组和列表的转换

    list()方法可以将元组转变成列表,tuple()方法可以将列表转变成元组。

    字典

    1、字典的创建

    字典由一系列的“键——值对”构成,每个键都与一个值相关联。创建一个字典有两种方法:一是直接写出所有的键值对,二是先创建空字典,再添加键值对。

    # 第一种方式
    student = {'math': 95, 'physics': 82, 'chemistry': 96}
    print(student)
    # 第二种方式
    student = {}
    student['math'] = 95
    student['physics'] = 82
    student['chemistry'] = 96
    print(student)
    

    输出:

    {'math': 95, 'physics': 82, 'chemistry': 96}
    {'math': 95, 'physics': 82, 'chemistry': 96}
    

    既然能添加键值对,当然也能删除键值对,使用del语句就能实现。

    del student['chemistry']
    print(student)
    

    输出:

    {'math': 95, 'physics': 82}
    

    2、访问并修改字典中的值

    可以使用键来访问字典中的值,同时也能修改它。

    student = {'math': 95, 'physics': 82, 'chemistry': 96}
    print(student['physics'])
    student['physics'] = 80
    print(student)
    

    输出:

    82
    {'math': 95, 'physics': 80, 'chemistry': 96}
    

    3、遍历字典

    使用items()方法可以轻松获得字典的键和值,我们便可以用它来遍历整个字典。

    student = {'math': 95, 'physics': 82, 'chemistry': 96, 'biology': 90}
    for key, value in student.items():
        print("Key:", key)
        print("Value:", value)
    

    输出:

    Key: math
    Value: 95
    Key: physics
    Value: 82
    Key: chemistry
    Value: 96
    Key: biology
    Value: 90
    

    使用keys()返回键列表,使用values()返回值列表。

    for subject in student.keys():
        print("subject:", subject)    
    for score in student.values():
        print("score:", score)
    

    输出:

    subject: math
    subject: physics
    subject: chemistry
    subject: biology
    score: 95
    score: 82
    score: 96
    score: 90
    

    4、字典的嵌套

    字典的嵌套有3种:字典嵌套在列表中、列表嵌套在字典中、字典嵌套在字典中。

    4.1、字典嵌套在列表中

    user_0 = {"name": "Tom", "age": 20}
    user_1 = {"name": "Miller", "age": 26}
    user_2 = {"name": "Amy", "age": 18}
    users = [user_0, user_1, user_2]
    for user in users:
        print(user)
    

    列表users中的每一个元素都是一个字典类型,里面存储了用户的姓名和年龄。
    输出为:

    {'name': 'Tom', 'age': 20}
    {'name': 'Miller', 'age': 26}
    {'name': 'Amy', 'age': 18}
    

    4.2、列表嵌套在字典中

    country_and_company = {
        'China': ['Tencent', 'Xiaomi', 'Huawei'],
        'US': ['Google', 'Microsoft', 'Apple']
    }
    for country, companies in country_and_company.items():
        print("\n", country+"'s companies are:", end="")
        for company in companies:
            print(" "+company+",", end="")
    

    输出:

     China's companies are: Tencent, Xiaomi, Huawei,
     US's companies are: Google, Microsoft, Apple,
    

    4.3、字典嵌套在字典中

    users = {
        'user_0':{'name':'Tom', 'age':20, 'country':'US'},
        'user_1':{'name':'Amy', 'age':18, 'country':'UK'}
    }
    for user, user_info in users.items():
        print(user+":")
        print("name: "+user_info['name']+" age: "+str(user_info['age'])+" country: "+user_info['country'])
    

    输出:

    user_0:
    name: Tom age: 20 country: US
    user_1:
    name: Amy age: 18 country: UK
    

    转载请注明出处

    相关文章

      网友评论

        本文标题:Python3学习笔记——元组、字典

        本文链接:https://www.haomeiwen.com/subject/sdkneftx.html