列表,元祖,字典的详细概述

list(列表):

list是一种有序的集合,可以随时添加和删除其中的元素

定义一个列表:

classmates = ['Michael','Bob','Tracy']

用len()函数可以获得列表元素的个数:

In [3]: len(classmates)
Out[3]: 3

也可以用索引访问每一个位置的元素,记住索引是从0开始的,超出范围之后就会报错:

In [5]: classmates[0]
Out[5]: 'Michael'

In [6]: classmates[1]
Out[6]: 'Bob'

In [7]: classmates[3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-7-81a27e3ce05f> in <module>()
----> 1 classmates[3]

IndexError: list index out of range

列表的相关操作:

<1>添加元素("增"append,extend,insert):

为什么是三个呢,当然是有所不同的,ok  我们举例说明


In [8]: names = [100,200,'300','ok']

In [9]: names.append("400")

In [10]: names
Out[10]: [100, 200, '300', 'ok', '400']

看到效果了吧,是的  append就是在列表的最后添加

extend就是两个列表的合并

In [13]: names2 = [500,600]

In [14]: names.extend(names2)

In [15]: names
Out[15]: [100, 200, '300', 'ok', '400', 500, 600]

Out[15]: [100, 200, '300', 'ok', '400', 500, 600]

insert(index.object)  在指定位置index前插入元素object:

In [16]: names.insert(0,"000")

In [17]: names
Out[17]: ['000', 100, 200, '300', 'ok', '400', 500, 600]

<2>修改元素:  ("改" 指定索引修改)

In [18]: names[2]=1000

In [19]: names
Out[19]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

<3>查找元素 ("查"  in,not in,index,count)

in和not in 一般做判断用

查找元素是否存在

in(存在),如果存在结果为Ture,否则为False

not in(不存在)如果不存在结果为Ture,否则为False

In [22]: 100 in names
Out[22]: True

In [23]: 100 not in names
Out[23]: False

index(查找索引所对应的元素):

In [19]: names
Out[19]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

In [20]: names.index('ok')
Out[20]: 4

count 查找列表中元素的个数:

In [21]: names.count('ok')
Out[21]: 1

<4>("删"del,pop,remove)

del : 根据下标位删除,也可以删除所有变量

In [24]: names
Out[24]: ['000', 100, 1000, '300', 'ok', '400', 500, 600]

In [25]: del names[2]

In [26]: names
Out[26]: ['000', 100, '300', 'ok', '400', 500, 600]

pop: 默认只能删除列表的最后一个 并返回给你

In [27]: names.pop()
Out[27]: 600

In [28]: names
Out[28]: ['000', 100, '300', 'ok', '400', 500]

remove : 删除指定的内容

In [31]: names.remove('000')

In [32]: names
Out[32]: [100, '300', 'ok', '400', 500]

<5>排序(sort,reverse)

sort方法将list按照特定顺序重新排列,默认从小到大,接参数reverse=Ture 可从打的大小排序

In [36]: num = [1,5,6,32,23,67]

In [37]: num.sort()

In [38]: num
Out[38]: [1, 5, 6, 23, 32, 67]

注:排序必须保证元素是同等类型,否则会报错.

reverse方法就是将list逆置:

In [42]: num = [1,5,6,32,23,67]

In [43]: num.reverse()

In [44]: num
Out[44]: [67, 23, 32, 6, 5, 1]

Tuple(元祖)

元祖与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号,列表使用中括号

元祖的各种操作访问和列表基本是一样的,

下面举一个例子:


In [46]: num = [1,5,6,32,23,67]

In [47]: my_tuple = (100,200,num)

In [48]: my_tuple
Out[48]: (100, 200, [1, 5, 6, 32, 23, 67])

In [49]: my_tuple[2][1]= 20

In [50]: my_tuple
Out[50]: (100, 200, [1, 20, 6, 32, 23, 67])

大家可以仔细看看,从表面看呢 元祖是被修改了,其实不然,修改的只是list元素,而不是元祖.

dict(字典):

字典使用键-值(key-value)存储,具有及快的查找速度

In [63]: my_dict = {"name":"laowang","age":25,"sex":"男"}

In [64]: my_dict["name"]
Out[64]: 'laowang'

在访问一个字典的时候我们不可以用索引,用的是键,键在字典中是不可重复的

In [67]: my_dict.get("name")
Out[67]: 'laowang'

In [68]: my_dict.get("addr")

也可以用这种方法访问,这种访问一个不存在的键时,不会报错,返回的是一个None 而上面的方法是会报错的

字典中的添加:

In [69]: my_dict["addr"]="BJ"

In [70]: my_dict
Out[70]: {'addr': 'BJ', 'age': 25, 'name': 'laowang', 'sex': '男'}

In [71]: my_dict["addr"]="SZ"

In [72]: my_dict
Out[72]: {'addr': 'SZ', 'age': 25, 'name': 'laowang', 'sex': '男'}

可以使用以上方法添加,如果键不存在就是添加,如果已经存在就是修改 

删除的话 使用del 就可以

In [75]: del my_dict["addr"]

In [76]: my_dict
Out[76]: {'age': 25, 'name': 'laowang', 'sex': '男'} 

字典中的函数:

keys: 返回字典中所有的key的列表

In [76]: my_dict
Out[76]: {'age': 25, 'name': 'laowang', 'sex': '男'}

In [77]: my_dict.keys()
Out[77]: dict_keys(['name', 'age', 'sex'])

values: 返回字典中所有的valuse的列表

In [78]: my_dict.values()
Out[78]: dict_values(['laowang', 25, '男'])

items:返回字典中的所有键值对

In [79]: my_dict.items()
Out[79]: dict_items([('name', 'laowang'), ('age', 25), ('sex', '男')])

字典的遍历

key的遍历:

In [82]: for key in my_dict.keys():
...: print(key)
...:
...:
name
age
sex

value的遍历

In [83]: for value in my_dict.values():
...: print(value)
...:
laowang
25

遍历字典的所有项

In [86]: for dic in my_dict.items():
...: print("key=%s,value=%s"%(dic))
...:
...:
key=name,value=laowang
key=age,value=25
key=sex,value=男

今天到这儿呢,已经结束了,我之所以把代码前面的也复制过来,是希望想学习python的小伙伴,可以自己打一边代码 而不是复制.

猜你喜欢

转载自www.cnblogs.com/sandiandian/p/8971599.html