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

元组

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

转载请注明出处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341