python基础复习(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenwang2018/article/details/84106270

dict

应用:dict()函数可以将两元素list组成的元组变为字典 

>>> name = (["first","google"],["second","Yahoo"])
>>> website = dict(name)
>>> website
{'first': 'google', 'second': 'Yahoo'}

根据key得到字典中的值

>>> person ={'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}

>>> for key in person:      #for循环遍历key列表
    print(person[key])      #根据key获取对应的值
qiwsir
qiwsir
python
qiwsir.github.io

嵌套

>>> a_dict = {1:{"name":"qiwsir"},2:"python","email":"[email protected]"}
>>> a_dict[1]['name']
'qiwsir

获取键、值的方法:

获取key

>>> website = {1:"google","second":"baidu",3:"facebook","twitter":4}
>>> website.keys()
dict_keys([1, 'second', 3, 'twitter'])

>>> for key in website.keys():   #循环得到key值
    print(key,type(key))

    
1 <class 'int'>
second <class 'str'>
3 <class 'int'>
twitter <class 'str'>

扫描二维码关注公众号,回复: 4563002 查看本文章

简化写法:

>>> for key in website:
    print(key,type(key))

    
1 <class 'int'>
second <class 'str'>
3 <class 'int'>
twitter <class 'str'>

获取值:

>>> website.values()
dict_values(['google', 'baidu', 'facebook', 4])

>>> for value in website.values():
    print(value)

    
google
baidu
facebook
4

另一种方法:遍历key,根据key得到value

>>> for key in website:
    print(website[key])

    
google
baidu
facebook
4

获取键值对组成的元组

>>> website.items()
dict_items([(1, 'google'), ('second', 'baidu'), (3, 'facebook'), ('twitter', 4)])

>>> for tuple in website.items():
    print(tuple)

    
(1, 'google')
('second', 'baidu')
(3, 'facebook')
('twitter', 4)

>>> for k,v in website.items():   #特定的形式遍历字典的键值对
    print(str(k)+':'+str(v))

    
1:google
second:baidu
3:facebook
twitter:4

>>> for k in website:        #常规方法遍历键值对
    print(str(k)+ ":" + str(website[k]))

    
1:google
second:baidu
3:facebook
twitter:4

>>> len(website)  #字典长度
4

删除键值对:

>>> website.pop()                      #字典是无序的,所有pop函数的参数不能省略
Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    website.pop()
TypeError: pop expected at least 1 arguments, got 0
>>> website.pop(1)               #删除指定键的值,得到的是删除的值
'google'
>>> website      #删除后字典的最终结果
{'second': 'baidu', 3: 'facebook', 'twitter': 4}

>>> del website[3]     # del 直接删除
>>> website
{'second': 'baidu', 'twitter': 4}

d.update(d2)     # 把d2合并到d中,d是合并后的,d2无变化

>>> d ={'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business'}
>>> d2 = {1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}
>>> d.update(d2)
>>> d
{'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business', 1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}
>>> d2
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

类似list中的extend

>>> list = [1,2,3,'ee','dd']
>>> list2 = ['f','g']
>>> list.extend(list2)
>>> list
[1, 2, 3, 'ee', 'dd', 'f', 'g']
>>> list2
['f', 'g']
>>> list.append(list2)
>>> list
[1, 2, 3, 'ee', 'dd', 'f', 'g', ['f', 'g']]

助记:字典更新update,列表拓展extend,append当做整体拓展

python3中字典的解析         #埋下一个研究方向


元组

元组不能修改,需要修改时可用list()方法将其转化为list

str、list与tuple相互转化:

>>> s = 'xxxxx'
>>> l = list(s)
>>> l
['x', 'x', 'x', 'x', 'x']
>>> t = tuple(s)
>>> t
('x', 'x', 'x', 'x', 'x')
>>> l1 = list(t)
>>> l1
['x', 'x', 'x', 'x', 'x']
>>> t1 = tuple(l)
>>> t1
('x', 'x', 'x', 'x', 'x')
>>> l2 = [1,2,'e']
>>> t2 = (3,'sss')
>>> ''.join(l2)
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    ''.join(l2)
TypeError: sequence item 0: expected str instance, int found      #l2中含有int型元素,list或tuple转str时不能含有int型元素

>>> l2 = ['3','dd','e']
>>> ''.join(l2)
'3dde'

>>> t2 = ('sss','gg','k')
>>> ''.join(t2)
'sssggk'

Tuple的特点:

  • Tuple 比 list 操作速度快。
  • 如果对不需要修改的数据进行 “写保护”,可以使代码更安全。
  • Tuples 可以在 dictionary 中被用做 key,但是 list 不行。
  • Tuples 可以用在字符串格式化中,后面会用到。

set(集合)

set的特点:元素不可重复,无序

把字符串转化为集合

>>> s1 = set("qiwsir")
>>> s1                    
{'q', 'i', 'r', 'w', 's'}                       # 1、拆开字符串;2、qiwsir"中有两个"i",自动去重了。

>>> s2 = set([123,"google","face","book","facebook","book"])
>>> s2
{'face', 123, 'facebook', 'book', 'google'}      #去重且顺序变了

不能直接创建含有dict或list的集合

>>> s1 = set(['q','i','s','r','w'])
>>> s1[1] = 'I'
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    s1[1] = 'I'
TypeError: 'set' object does not support item assignment    #集合是无序的,不能以编号(偏移量)的方式修改 ;可将其转化为list后再以编号的方式修改。

增加:

>>> a_set.add('[1,2,3]')     #集合中不能包含list,可以把list转换为str格式
>>> a_set
{'a', 'i', 'qiwsir', '[1,2,3]'}

合并:s1.update(s2)       #把s2合并到s1中,且s2不变,类似dict

>>> s1 =set([1,2,3])
>>> s2 =set([2,3,'d'])
>>> s1.update(s2)
>>> s1                      #合并集合并去重了
{1, 2, 3, 'd'}

删除:

>>> s1 = set("qiwsir")
>>> s1
{'q', 'i', 'r', 'w', 's'}
>>> s1.pop()          #因集合是无序的,故pop()会从中任选一个元素删除
'q'

>>> s1 = set("qiwsir")
>>> s1
{'q', 'i', 'r', 'w', 's'}
>>> s1.pop('i')                         #不支持删除指定的元素
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    s1.pop('i')
TypeError: pop() takes no arguments (1 given)   #不应该有参数,但给了一个参数

remove   #删除set的指定元素

>>> s1
{'q', 'i', 'r', 'w', 's'}
>>> s1.remove('i')
>>> s1
{'q', 'r', 'w', 's'}

discard 与remove的区别:  #discard也是删除集合中的指定元素,删除不在集合中的元素时不会报错,而remove会报错

>>> s1.remove('l')
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    s1.remove('l')
KeyError: 'l'

>>> s1.discard('q')
>>> s1
{'r', 'w', 's'}
>>> s1.discard('q')    #discard也是删除集合中的指定元素,删除不在集合中的元素时不会报错,而remove会报错
>>> 

clear  #清空集合中所有元素

>>> s1
{'r', 'w', 's'}
>>> s1.clear()
>>> s1
set()
>>> bool(s1)
False

猜你喜欢

转载自blog.csdn.net/chenwang2018/article/details/84106270
今日推荐