zoukankan      html  css  js  c++  java
  • Python3基础知识之元组、集合、字典

    1、元组

    元组特点
    元组是不可变的
    两个元组可以做加法,不能做减法

    元组的方法

    >>> S
    ('a', 'b', 'c', 'd', 'e')
    >>> S=('a','b','c','d','e','c','f')
    .count(x)统计某个元素在元组中出现的次数
    >>> S.count('c')
    2
    >>> S.count('a')
    1
    .index(x)从列表中找到某个值第一个匹配项的索引位置
    >>> S.index('a')
    0
    >>> S.index('c')
    2
    >>>
    如果要修改元组就直接用list把元组变成列表
    >>> a=(1,2,3,4)
    >>> a
    (1, 2, 3, 4)
    >>> a=list(a)
    >>> a
    [1, 2, 3, 4]
    >>>
    同理要将list变成元组只需要用tuple即可
    >>> a=tuple(a)
    >>> a
    (1, 2, 3, 4)
    >>>

    2、集合

    特点

    集合是无序的,并且元素不重复,集合是可变对象
    >>> S={1,2,3,4,4,5,5,56,6,6}
    >>> S
    {1, 2, 3, 4, 5, 6, 56}
    >>>

    不能用a={}来创建集合
    创建集合的方法用set函数
    创建空集合
    >>> b=set()
    >>> b
    set()
    >>> type(b)
    <class 'set'>
    >>>
    集合的属性及方法
    s.add()添加单个元素
    >>> a
    {1, 2, 3, 4}
    >>> a.add(10)
    >>> a
    {1, 2, 3, 4, 10}
    >>>
    s.update()添加多个元素
    >>> b
    {3, 4, 5, 6}
    >>> b.update((11,22,33,44,55)) #注意update中要用元组
    >>> b
    {33, 3, 4, 5, 6, 11, 44, 22, 55}
    >>>
    s.remove()移除元素
    >>> a
    {1, 2, 3, 4, 10}
    >>> a.remove(10)
    >>> a
    {1, 2, 3, 4}
    >>>
    s.clear()清空集合
    >>> b
    {33, 3, 4, 5, 6, 11, 44, 22, 55}
    >>> b.clear()
    >>> b
    set()
    >>>
    集合运算

    交集

    >>> a={1,2,3,4}
    >>> b={3,4,5,6}
    >>> a & b
    {3, 4}

    并集
    >>> a | b
    {1, 2, 3, 4, 5, 6}
    >>> a - b
    {1, 2}
    >>>

    差集
    >>> b -a
    {5, 6}
    >>>

    3、字典
    字典的创建:{key:value}
    >>> F={'a':1,'b':2}
    >>> F
    {'a': 1, 'b': 2}
    >>>
    或者dict(a=1,b=2)
    用dict()创建字典,键如果是字符串,则可以不用加引号
    >>> D=dict(a=1,b=2)
    >>> D
    {'a': 1, 'b': 2}
    >>>
    特点:
    1、字典中的元素是无序的
    2、不允许同一个键出现两次,即键必须唯一,如果出现两次则最后一次为准
    3、键必须不可变,所以可以用数字,字符串或元组充当,而列表就不行,列表时可变的
    字典添加和修改
    新值对应的键名如果存在,就是修改操作,否则就是添加操作
    >>> person=dict(a=1,b=2)
    >>> person
    {'a': 1, 'b': 2}
    >>> person['a']
    1
    >>> person['a']=100
    >>> person['c']=19
    >>> person
    {'a': 100, 'b': 2, 'c': 19}
    >>>

    in not in 判断键是否在字典中存在,在返回true,否则返回false
    字典的属性及方法
    >>> person
    {'a': 100, 'b': 2, 'c': 19}
    .update({})在字典中添加多个项
    >>> person
    {'b': 2, 'c': 19}
    >>>
    >>> person.update({'n':111,'m':222,'h':333})
    >>> person
    {'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
    >>>
    .items()返回字典的各个项
    >>> person.items()
    dict_items([('a', 100), ('b', 2), ('c', 19)])
    .keys()返回字典的键
    >>> person.keys()
    dict_keys(['a', 'b', 'c'])
    .values()返回字典的值
    >>> person.values()
    dict_values([100, 2, 19])
    >>>
    .get(k)如果k存在,则返回k值,否则返回None
    >>> person.get('k')
    >>> print(person.get('k'))
    None
    .get(k,x)如果键k在,返回键k的值,不存在则返回x
    >>> print(person.get('k','x'))
    x
    >>>
    .pop(k)返回并移除键k所对应的元素,不存在职责抛出异常
    >>> person
    {'a': 100, 'b': 2, 'c': 19}
    >>>
    >>> person.pop('k')
    Traceback (most recent call last):
    File "<pyshell#92>", line 1, in <module>
    person.pop('k')
    KeyError: 'k'
    >>>
    >>> person.pop('a')
    100
    >>> person
    {'b': 2, 'c': 19}
    >>>
    .pop(k,x)返回并移除键k所对应的元素,不存在则返回x
    >>> person
    {'a': 100, 'b': 2, 'c': 19}
    >>> person.pop('k','x')
    'x'
    >>>
    >>> person.pop('a','n')
    100
    >>> person
    {'b': 2, 'c': 19}
    >>>

     字典的键对应的值如果是整型或者字符串,那么可以直接做加法运算(加要加同样的类型)

    >>> person
    {'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
    >>> person['b'] +=10
    >>> person['b']
    12
    >>>

    >>> person['e']='abcd'
    >>> person
    {'b': 12, 'c': 19, 'n': 111, 'm': 222, 'h': 333, 'e': 'abcd'}
    >>> person['e'] += 'cool'
    >>>
    >>> person['e']
    'abcdcool'
    >>>

    4、常用运算符

    算术运算符:+,-,*,/,%,**,//
    赋值运算符:=,+=,-=,*=,/=,%= **=
    比较运算符:==,!=,>,<.>=,<=
    成员运算符:in,not in
    身份运算符:is,is not
    判断两个名字是否指向同一个对象,当id相同是返回True(==比较运算符)
    逻辑运算符:and,or,not
    and(与)两个条件都满足则成立返回True
    or(或)有一个条件满足则成立返回True
    not(非)取反

    例子练习

    一、已知字典ainfo = {'name':'lily','age':20}
    1.加入两项使得输出的结果:
    ainfo = {'name':'lily','age':20,'gender':'female','class':10}
    >>> ainfo.update({'gender':'female','class':10})
    >>> ainfo
    {'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
    >>>
    2.访问字典中的所有项,访问字典的键,访问字典中的值
    >>> ainfo.items()
    dict_items([('name', 'lily'), ('age', 20), ('gender', 'female'), ('class', 10)])
    >>> ainfo.keys()
    dict_keys(['name', 'age', 'gender', 'class'])
    >>> ainfo.values()
    dict_values(['lily', 20, 'female', 10])
    >>>
    二、将这三项内容创建字典,按下面规则添加到同一个对象中:
    (name = 'lily',age= 20,gender = 'female',class = 10)
    (name ='jack',age= 25,gender ='male',class =10)
    (name ='jane',age= 19,gender ='female',class =10)

    >>> d1={'name':'lily','age':20,'gender':'female','class':10}
    >>> d1
    {'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
    >>> d2=dict(name='jack',age=25,gender='male',Class=10) #--->该方法会把键转换成字符串
    >>> d2
    {'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}
    >>> d3=dict(name='jane',age=19,gender='female',Class=10)
    >>> d3
    {'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}
    >>>
    1.将这三项内容创建的三个字典放到一个列表里。
    [{},{}]
    >>> List=[d1,d2,d3]
    >>> List
    [{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}, {'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}, {'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}]
    >>>
    2.将这三项内容创建的三个字典放到一个字典里,要求字典以个人姓名为键,
    其他信息组成的字典为姓名这个键所对应的值。(字典里面嵌套字典){'lily':{},'jack':{}}
    例如info = {'lily':{'age':20,'gender':'female','Class':10}}

    >>> ainfo[d1.pop('name')]=d1
    >>> ainfo
    {'lily': {'age': 20, 'gender': 'female', 'class': 10}}
    >>>
    >>> ainfo[d2.pop('name')]=d2
    >>> ainfo
    {'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}}
    >>>
    >>> ainfo[d3.pop('name')]=d3
    >>> ainfo
    {'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}, 'jane': {'age': 19, 'gender': 'female', 'Class': 10}}
    >>>

    d1.pop('name')取值之后返回name对应的值,剩下的d1就是去掉'name';'lily'之后的部分

  • 相关阅读:
    Pytorch tensor求和( tensor.sum())
    Pytorch torch.cat(inputs, dimension=0)
    README.md编写
    Numpy-np.random.normal()正态分布
    numpy数组的分割与合并
    使用Pandas读取CSV文件
    train loss与test loss结果分析/loss不下降
    Python-给数字/字符串前加0
    SVM简单上手示例
    迁移学习简介
  • 原文地址:https://www.cnblogs.com/kindnull/p/6701570.html
Copyright © 2011-2022 走看看