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 看到你用到了 mystuff ,于是就去找到这个变量。也许它需要倒着检查看你有没有在哪里用 = 创建过这个变量,或者检查它是不是一个函数参数,或者看它是不是一个全局量。不管哪种方式,它得先找到 mystuff
- 一旦它找到了 mystuff ,就轮到处理句点 . (period) 这个操作符,而且开始查看 mystuff 内部的一些变量了。由于 mystuff 是一个列表,Python 知道mystuff
- 接下来轮到了处理 append 。Python 会将 “append” 和 mystuff
- 接下来 Python 看到了括号 (
- 这个额外的参数其实是…… 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>