Python-列表、元组、字典

  • 列表(list)

  可迭代对象:能被for循环获取

  #引用列表中的列表中的元素

li[4][1][2]  #可以引用列表中的列表中的列表中的某元素

   #列表转换字符串:(join、for循环)

      1.列表中仅包含字符串可以使用join拼接

li = ['ss','df']
v = ''.join(li)
print(v)
# -->  ssdf

      2.若还有其他数据类型,则只能使用for循环累加得到。

  #向后追加: (append、extend)

li.append('2')      #--> ['ss', 'df', 2]
li.append(['s',2,'asd']) #--> ['ss', 'df', ['s', 2, 'asd']]
li.extend(['s',2,'asd']) #--> ['ss', 'df', 's', 2, 'asd']
li.extend('假道') #--> ['ss', 'df', '假', '道']

      #append即将括号内的元素原封不动添加到原列表中

    #而extend可将可迭代对象拆分成单个元素插入原列表

  #在任意位置插入

li.insert(1,'ss')

   #计数

v = li.count('s')

    #查找元素第一次出现的位置

v = li.index('ss')

  #删除:(del、pop、remove)

del li[2:4]
v = li.pop(1) #删除指定位置的元素(默认为末尾),并将删除的元素赋值给v
li.remove('ss')  #删除第一个出现的某元素

  #列表反转

li.reverse()

  #排序

li.sort()  #默认降序,升序:li.sort(reverse=True)

  对象.方法() :专业术语叫做 对象×××引用方法×××

  • 元组(tuple)
tuple = (33,'alex',(11,22),[(33,44)],True,)

  1.一般写元组时,在最后加入一个逗号,不影响任何东西,但可便于区分tu=(1,’s’,)

  2.相对于列表,其一级元素(仅限一级元素)不可被修改,不能被增加或删除

    **若一级元素是列表、元组等类型,则其内部元素可修改

    3.同为可迭代对象的字符串、列表、元组可相互转换

  • 字典(dict)

     1.字典是无序的

      2.布尔值可以作为key,但True = 1,False = 0(二者作为key完全相同)

info = {'k1':'ss','k2':23}  #创建字典

  #获取某key对应的value:

v = info['a2']       #获取a2对应的值,注意用方括号
v = info.get('a2',"can't find") #获取a2对应的值

    #上述两种方法区别:

     #当a2不存在时,第一种方法会报错,而第二种方法会返回后面的字符串(无字符串则返回None)

  #设置值

v = info.setdefault('k22', 'asdf') 

    #若k22存在,则返回其value给v;若k22不存在,则将’k22’:’asdf’加入字典info,同时返回’asdf’给v

  #更新

info.update({'k1':1234, 'as12':111111})

    #若原字典的key有k1,as12,则将其value替换成新设的值;若没有,则将其添加入原字典

  #上式的另一种写法是:

info.update(k1=1,k3='3',k5='asdf')

    #两种写法效果一样

  #删除元素

del info['k1']
v = dic.pop(‘k1’,90)  #删除并返回其值,若k1不存在,则返回自设的值(90),无自设则报错
k,v = info.popitem()  #随机删除并返回其key和value

  #循环输出其元素

for item in info:        #默认输出字典的key
    print(item)
for item in info.keys():   #循环输出key
for item in info.values():  #循环输出value
for k,v in info.items():   #循环对应输出元素key和value
    print(k,v)

  #根据序列(作为key),创建字典,并指定统一的值

v = dict.fromkeys(['k1',2,3], 2)
    #等价于v = {‘k1’:2, 2:2,3:2}

 

原文地址:https://www.cnblogs.com/yu-long/p/9932943.html