程序员

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

2018-06-18  本文已影响0人  equalsYU

元组

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

转载请注明出处

上一篇下一篇

猜你喜欢

热点阅读