Python小白学习进行时---字典(2018、06、20)

一、元组

元组和列表非常类似,但元组一旦定以后不能修改,不能进行项list一样append()和insert()增加元素个数,也不能进行del、remove()和pop()删取元素的操作,但元组可以执行如下:

1、声明元组
  tuple=(1,2,3,4,“a”)
  print(tuple)

  (1, 2, 3, 4, 5, 'a')
2、查找元组元素:
1.取单个某一位置的元素: toupe[下标]
2.切片操作: touple[上标:下标]
  tuple1=(1,2,3,4,5,'a')
  print(tuple1[1:4])
3.元组长度的确定
tuple1=(1,2,3,4,5,'a')
print(len(tuple1))
3、元组的操作:+、*
list1=(1,2,3)
list2=(“a”,“b”)
print(list1+list,list1*2)

(1, 2, 3, 'a', 'b') (1, 2, 3, 1, 2, 3)

习题;输入 1--7数字对应输出星期几;例如如果输入1,这对应输出星期日。
 number1=int(input("请输入一个数字:"))
 week_touple1=("星期一","星期二","星期三","星期四","星期五","星期六","星期七")
 print(week_touple1[number1-1])

二、字典

字典是一个容器类型的数据类型,以键值对成对出现来存储数据。
键值对: 键:值 以冒号隔开。其中值可以是任何数据类型;键:理论上只能是不可变的数据类型。
字典的特点: 可变性、无序性(不能使用下标来遍历字典)

1、定义/声明一个字典(dict)

格式:dict={key:value} 多个键值对之间用逗号隔开。其中key唯一

2、查字典中的值

a、通过key查找获取value: 字典名[key] ----获取单个value
注意:使用key获取value时,字典中的key必须存在。否则报错

b、通过方法get()获取值: 字典名.get(key)
可以通过get()方法判断字典中是否存在key值。

 name_xiaoming={'name':'xiaoming','age':18,  'score':20,'face':10}
 print(name_xiaoming.get('a'))

 None
3、遍历字典中的元素

用for循环遍历字典获取字典中的键(key),通过键(key)获取值(value)

  name_xiaoming={'name':'xiaoming',
                 'age':18,
                 'score':20,
                 'face':10}
  for key in name_xiaoming:
      print(key, name_xiaoming[key])

  name xiaoming
  age 18
  score 20
  face 10
4、修改字典

将新值赋给dict(key)

 dict1={'a':1,'b':2,'c':3}
 dict1['a']=10
 print(dict1)

 {'a': 10, 'b': 2, 'c': 3}
5、添加、修改键值对

添加键值对,通过key取值赋值。如果key不存在,添加key。否者修改value值。

     dict1={'a':1,'b':2,'c':3}
     dict1['d']=4
     print(dict1)
6、删除键值对

a、格式:del 字典[key]。通过key删除字典中的键值对。

dict1={'a':10,'b':10.3,'c':False,'d':[1,2]}
del dict1["d"]
print(dict1)

{'a': 10, 'b': 10.3, 'c': False}

b、pop()方法:
格式:字典.pop(key)

dict1={'a':10,'b':10.3,'c':False,'d':[1,2]}
result=dict1.pop("a")
print(dict1,result)

习题:将字典中值为字符串的全部删除

dict1={'a':10,'str':'string','b':10.3,'c':False,'d':[1,2]}
for key in dict1.copy():
    value=dict1[key]
    if isinstance(value,str):
        dict1.pop(key)
print(dict1)

{'a': 10, 'b': 10.3, 'c': False, 'd': [1, 2]}
1、字典中还有keys和values方法

keys方法使用:字典.keys() 将字典中的所有键(key)获取形成一组列表。

  dict1={'a':1,'b':2,'c':3}
  print(dict1.keys())

  dict_keys(['a', 'b', 'c'])

values方法使用:字典.values() 将字典中所有值(value)获取形成一组列表。

  dict1={'a':1,'b':2,'c':3}
  print(dict1.values())

  dict_values([1, 2, 3])
2、update()

字典1.update)(字典二) 如果字典中的键值对在字典1中没有,就直接添加,如果有就是修改value。

  dict1={'a':1,'b':2,'c':3}
  dict2={"d":1}
  dict1.update(dict2)
  print(dict1)

 {'a': 1, 'b': 2, 'c': 3, 'd': 1}
3、in 和 not in

判断字典中是否有指定的key

  dict1={'a':1,'b':2,'c':3}
  print("a" in dict1)
  print("a" not in dict1)

 True

三、集合

集合是一种容器,并且是无序的,元素的值具有唯一性,不能重复。
数据的存储方式:通过大括号存储元素,多个元素之间用逗号隔开。

1、集合的声明
seti={元素1,元素2,。。。}
例如: set1={1,2,3,4,1,10}
2、集合类型的转化

a、将字符串转换成集合

set2=set('abcdef')
print(set2)

{'d', 'e', 'a', 'c', 'b', 'f'}

b、将列表转成集合

set1=set(["q",2,3,4,5,6])
print(set1)

{2, 3, 4, 5, 6, 'q'}

c、将字典转换成集合,是将字典中的key取出来作为集合的元素

set1=set({"a":1,"b":2})
print(set1)

{'b', 'a'}
3、遍历集合
str1='abdaadhjkjjhks'
set1=set(str1)
str1=''
for item in set1:
     str1+=item
print(str1)

dkbasjh
4、获取集合中的元素

集合不能单独的获取某一个元素,只能通过遍历的方式获取每一个元素。

set=set('12346789anc')
for item in set:
    print(item,end=" ")

1 6 c 4 a 2 3 7 9 n 8 
5、添加集合中的元素

a、通过update()方法添加元素: 集合1.update(集合2)

set1=set('123456')
set2=set('aa')
set1.update(set2)
print(set1)

b、add
集合.add(元素):将制定的元素添加到集合中

set1=set('123456')
set1.add('aaa')
print(set1)

{'1', '5', '2', '3', '6', 'aaa', '4'}
6、删除元素

集合中只能使用remove()删除集合中的元素:
格式: 集合.remove(指定元素)

set1=set('123456')
set1.remove("1")
print(set1)

{'4', '5', '6', '2', '3'}

在Python中集合除了作为容器相关的操作外,还可以做一下操作:

1、判断包含关系:>=、<=

集合1>=集合2:判断集合1中是否包含集合2,返回结果为bool值。

set1=set("abcdef")
set2=set("abc")
print(set1>=set2)

True

集合1<=集合2: 判断集合2中是否包含集合1。

set1=set("abcdef")
set2=set("abc")
print(set1<=set2)
False
2、集合操作 |、&、-、^

a、| 求并集

set1=set('123456')
set2=set('45678')
print(set1|set2)

{'7', '2', '4', '5', '1', '3', '8', '6'}

b、& 求交集

set1=set('123456')
set2=set('45678')
print(set1&set2)

{'4', '6', '5'}

c、- 求差集, 在set1中不在set2中的元素

set1=set('123456')
set2=set('45678')
print(set1-set2)

{'3', '2', '1'}

d、^ 获取set1和set2中除了公共部分以外的元素

set1=set('123456')
set2=set('45678')
print(set1^set2)

{'3', '7', '8', '2', '1'}

3、copy()函数
将set1中所有的元素取出来创建新的集合

set1=set('123456')
print(set1.copy())

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

推荐阅读更多精彩内容