Python 的元组、列表、字典区别与联系

python的3种内建数据结构: 元组(tuple)、列表(list)、字典(dictionary)

一、元组(tuple)

元组是有序的不可变序列。元组不能被修改。通过圆括号()中用逗号,分隔的项目定义。可以通过序号访问(t[index])。元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。

<span style="font-size:14px;">t1=()      #定义空元组t2=(1,)   #定义含1个元素的元组,注意“,”#一些函数/方法t.count() t.index()  #因为元组不可修改,所以有些列表能用的方法元组不能用。如下面2个输入会出错。t.append()t.pop()


二、列表(list)

列表是有序可变的序列。可以进行增删改查。通过方括号[]中用逗号,分隔的项目定义。可以包含任意数据类型,可通过序号访问(l[index]),可以切片可以嵌套。

常用列表操作:

list.append(x)在末尾追加元素x   -----关于类似list.append(x)命令,python的操作过程

list.pop(i)弹出位置i的元素

list.count(x)计算列表中参数x出现的次数

list.remove(x)删除列表中的元素,直接删除第一个出现的元素x

list.extend(L)在末尾追加另一个列表L的全部元素

list.reverse()将列表中成员的顺序颠倒

list.index(x)获得参数x在列表中的位置

list.sort()将列表中的成员排序

insert( i,b)在位置i插入元素b


三、字典(dictionary)

字典是无序可变的键值对的集合,可以进行增删改查。通过大括号{}中用逗号,分隔的项目定义,用:表示对应关系(键对值)d = {key1 : value1, key2 : value2 }。可以包含任意数据类型,通过键访问(d[key])。

常用字典操作:

dic.clear()清空字典

dic.keys()获得键的列表

dic.values()获得值的列表

dic.copy()复制字典

dic.pop(k)删除键k

dic.get(k)获得键k的值

dic.update()更新成员,若成员不存在,相当于加入

dic.items()获得由键和值组成的列表

dic.popitem


四、总结

元组(tuple)、列表(list)、字典(dictionary)都是序列(包括字符串),都可以进行索引和切片操作,也可以互相转换

切片操作,以列表为例:  

example = [0,1,2,3,4,5,6,7,8,9]#打印某一区间 左闭右开  print(example[4:8])  >>>[4,5,6,7]#想包含最后一个  print(example[4:])  >>>[4,5,6,7,8,9]#包含首个  print(example[:8])  >>>[0,1,2,3,4,5,6,7]#所有的  print(example[:])  >>>[0,1,2,3,4,5,6,7,8,9]#第三个参数为步长  print(example[1:8:2])  >>>[1,3,5,7]#倒序输出  print(example[::-1])  >>>[9,8,7,6,5,4,3,2,1,0]



python对于类似list.append(x)命令的处理(摘自《Learn Python The Hard Way

当你看到像 mystuff.append('hello') 这样的代码时,你事实上已经在 Python 内部激发了一个连锁反应。以下是它的工作原理:

  1. Python 看到你用到了 mystuff ,于是就去找到这个变量。也许它需要倒着检查看你有没有在哪里用 = 创建过这个变量,或者检查它是不是一个函数参数,或者看它是不是一个全局量。不管哪种方式,它得先找到 mystuff 这个变量才行。

  2. 一旦它找到了 mystuff ,就轮到处理句点 . (period) 这个操作符,而且开始查看 mystuff 内部的一些变量了。由于 mystuff 是一个列表,Python 知道mystuff 支持一些函数。

  3. 接下来轮到了处理 append 。Python 会将 “append” 和 mystuff 支持的所有函数的名称一一对比,如果确实其中有一个叫 append 的函数,那么 Python 就会去使用这个函数。

  4. 接下来 Python 看到了括号 ( (parenthesis) 并且意识到, “噢,原来这应该是一个函数”,到了这里,它就正常会调用这个函数了,不过这里的函数还要多一个参数才行。

  5. 这个额外的参数其实是…… mystuff! 我知道,很奇怪是不是?不过这就是 Python 的工作原理,所以还是记住这一点,就当它是正常的好了。真正发生的事情其实是append(mystuff, 'hello') ,不过你看到的只是 mystuff.append('hello') 。


python字符串/元组/列表/字典互转

<span style="font-size:14px;">#-*-coding:utf-8-*- #1、字典dict = {'name': 'Zara', 'age': 7, 'class': 'First'}#字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'}print type(str(dict)), str(dict)#字典可以转为元组,返回:('age', 'name', 'class')print tuple(dict)#字典可以转为元组,返回:(7, 'Zara', 'First')print tuple(dict.values())#字典转为列表,返回:['age', 'name', 'class']print list(dict)#字典转为列表print dict.values#2、元组tup=(1, 2, 3, 4, 5)#元组转为字符串,返回:(1, 2, 3, 4, 5)print tup.__str__()#元组转为列表,返回:[1, 2, 3, 4, 5]print list(tup)#元组不可以转为字典#3、列表nums=[1, 3, 5, 7, 8, 13, 20];#列表转为字符串,返回:[1, 3, 5, 7, 8, 13, 20]print str(nums)#列表转为元组,返回:(1, 3, 5, 7, 8, 13, 20)print tuple(nums)#列表不可以转为字典#4、字符串#字符串转为元组,返回:(1, 2, 3)print tuple(eval("(1,2,3)"))#字符串转为列表,返回:[1, 2, 3]print list(eval("(1,2,3)"))#字符串转为字典,返回:<type 'dict'>print type(eval("{'name':'ljq', 'age':24}"))</span>


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值