Python基础之元组、字典,集合详解

之前总结了Python列表,这篇总结Python的元组,字典和集合。

一 元组 tuple

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

(1)创建元组

列表使用[ ]创建,而元组使用(),元素用 “,” 分割。不使用()也可以表示元组

tup1 = ()  # 空元组
tup2 = ('A', 2, True, 8.8)
tup3 = 'A', 2, True, 8.8

注意:当元组只有一个元素,需要在元素后面添加逗号,否则括号会被当作运算符使用:

tup = (1,)
tup2 = (1)
print(type(tup))  #<class 'tuple'>
print(type(tup2))  #<class 'int'>

(2)访问元组

和列表一样,通过索引访问元素,切片等规则同样适用:

tup1 = ('A', 'B', 'C', 'D', 'E')
print(tup1[2])
print(tup1[1:4])

输出:

C
('B', 'C', 'D')

(3)修改元组

元组中的元素值是不允许修改的,但是我们却可以通过对整个元素重新赋值,达到效果:

tup1 = ('A', 'B', 'C', 'D', 'E')

# tup1[0] = "666"  抛异常 TypeError: 'tuple' object does not support item assignment
tup1=('666', 'B', 'C', 'D', 'E')
print('最新的tuple: ',tup1) 

输出

最新的tuple:  ('666', 'B', 'C', 'D', 'E')

(4)常见用法

  • len() 函数,求元组长度
  • in 判断元素是否在元组里
  • for 遍历
  • 切片
    上面这些操作,和列表一样,参照列表写即可。

二 字典 dict

Python字典是一种可变容器,储存一系列键值对,键和值一一对应,可以使用键来访问与之相关联的值。
Python对键的要求是:不可变切唯一,也就是说键只能用str,int等不可变对象。对值没有要求,可以储存任何值。

(1)定义字典

字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。

d = {key1 : value1, key2 : value2 }

(2)访问字典

通过键去访问对应的值,如果键不存在,会抛出KeyError:

d = {'name': '小王', 'age': "18"}

print('name: '+d['name'])  #name: 小王
print('age: '+d['age'])  #age: 18
print(d['66']) #KeyError: '66'

也可以动态增加键值对:

d['height']="180"
print(d)  #{'name': '小王', 'age': '18', 'height': '180'}

(3)修改字典

通过键去修改对应的值:

d = {'name': '小王', 'age': '18', 'height': '180'}

d['name'] = '老王'  # 修改

del d['age']  # 删除键值对  pop可以返回删除的值
print(d)

d.clear()  # 清空字典
print(d)

输出:

{'name': '老王', 'height': '180'}
{}

(4)遍历字典

①获取所有键值对信息:
d = {'name': '小王', 'age': '18', 'height': '180'}

for k,v,in d.items():
    print('键为:{},值为:{}'.format(k,v))

输出为:

键为:name,值为:小王
键为:age,值为:18
键为:height,值为:180
②获取所有键的信息:
d = {'name': '小王', 'age': '18', 'height': '180'}

for k in d.keys():
    print('键为:{}'.format(k))
    if k == 'age':
        print("找到你的年龄啦~"+d[k])

输出:

键为:name
键为:age
找到你的年龄啦~18
键为:heit
③获取所有值:
d = {'name': '小王', 'age': '18', 'height': '180'}

for v in d.values():
    print('值为:{}'.format(v))
    if v == '180':
        print("这是height 吧~"+v)

输出:

值为:小王
值为:18
值为:180
这是height 吧~180

三 集合set

集合(set)是一个无序不重复元素的序列。

(1) 创建集合set

有两种方式,使用{ } 或者set(list)方式:

s = set([1, 2, 3, 4])
print(s)

s2 = {1, 2, 3, 4}
print(s2)

s3 = set()  # 空集合,不能用s3={},这是空字典
print(s3)

输出为:

{1, 2, 3, 4}
{1, 2, 3, 4}
set()

(2) 集合基本操作

  • 添加元素,使用add方法,因为set自带去重功能,所以添加重复元素没有效果,或者使用updata,可以添加列表,元组,字典等
s = set()  # 空集合 ,不能用s={},这是空字典
s.add(1)
s.add(1)
s.add(1)
print(s)  # {1}
s.update(['22','33'])
print(s) # {'33', 1, '22'}
  • 删除元素使用remove,或者discard。前者当元素不存在会报错,后者不会。
s=set([1,2,3,4,5])
s.remove(1)
# s.remove(6) KeyError: 6
print(s)  # {2, 3, 4, 5}
s.discard(2)
s.discard(6)
print(s) # {3, 4, 5}
  • pop 方法是随机删除一个元素
  • len 求长度
  • clear 清空set
  • in 判断元素是否存在
  • for 循环

总结出不少东西,但其实常用的没有几个方法。大部分有个印象,用到了再查,要比直接全记住效果好很多~

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