Skip to content

Latest commit

 

History

History
148 lines (109 loc) · 3.67 KB

3.md

File metadata and controls

148 lines (109 loc) · 3.67 KB

元组、列表、字典

step3被寄予厚望要详细讲,其实也没有多详细。

元组、列表、字典是最简单的数据结构。

元组 ()

元组可以看做是不可变的列表,在赋值及字符串模板中特别好用。

some_tuple = (6,'7')
a,b = some_tuple
print(a)
print(b)
# 6
# 7
print('digit %d str %s' % some_tuple)
# digit 6 str 7

这里的字符串拼接分三个部分:

  1. 'digit %d str %s' - 带%d %s的字符串模板
  2. % - 一个百分号
  3. some_tuple - 参数元组,即(6,'7')

在字符串模板中,%d代表一个整数,%s代表一个字符串,这种符号的数量和顺序是和参数元组中的元素一一对应的。

列表 []

列表一般用来存放同类型数据,存放不同类型的推荐使用字典。

some_list = ['y','e','s','.']
some_list = [1,6,8,9]
# 像这种情况
some_list = [1,'ok',[],{},False]
# 如果是有序的参数,我们尽量使用tuple
some_tuple = (1,'ok',[],{},False)
# 如果是类似属性这样的,我们尽量使用dict
some_dict = {
    'num':1,
    'msg':'ok',
    'some_list':[],
    'some_dict':{},
    'freezed':False
}

字符串 ''

字符串可以看做是完全由字符组成的列表。

some_str = 'yes,it is.'

some_list = ['y','e','s',',','i','t',' ','i','s','.']

print(len(some_str),len(some_list))
# 10 10

元组、字符串、列表的读取

可以通过变量名[索引]的方式读取它们的元素,索引就是它的位置序号,从0开始递增。

some_tuple = (6,'e')
some_str = 'yes.'
some_list = ['y','e','s','.']
print(some_tuple[1],some_str[1],some_list[1])
# e e e

列表的修改

元组、字符串、列表都不可以通过索引在新的位置直接写入。但是其中的列表可以通过索引对已有位置的元素进行修改。

其他操作都需要通过函数进行转化来实现。比如字符串对象的replace()方法,列表对象的append()方法等,之后会接触到。

some_list = ['y','e','s']
some_list[0] = 'Y'
print(some_list)
# ['Y','e','s']

集合 {}

集合可以看做是不具有重复元素的列表(长得不像,不能通过索引访问),或者只有key的字典(只是长得像,也不能通过key访问)。

some_list = ['y','e','s',',','i','t',' ','i','s','.']

# 函数set(list)返回一个集合
some_set = set(some_list)
print(some_set)
# {'e', 'y', '.', 's', 't', ' ', 'i', ','}
# 重复的i和s只剩一个了。具有确定性、互异性、无序性。

注意因为确定性的关系,像list这样可变的类型,不可以放入set中。

集合的交、并

集合元素的增减也需要通过函数实现,比如集合对象的add()remove()方法。但现在我们主要介绍它的数学功能。

s1 = {1,2,3}
s2 = {2,3,4}
print(s1 & s2)
# {2, 3}
print(s1 | s2)
# {1, 2, 3, 4}

字典 {key:value}

正如上面推荐使用dict所展示的那样。字典由{}和键值对定义。

some_dict = {
    'num':1,
    'msg':'ok',
    'some_list':[],
    'some_dict':{},
    'freezed':False
}

在其他语言当中它也被称为map,因为它不需要像list一样按照顺序查找。而是像看地图一样根据某个方位直接找到。这是通过key来实现的。所以它具有极快的查找速度。

读字典

some_msg = some_dict['msg']
print(some_msg)
# ok

写字典

some_dict['some_key'] = 'lalala'
print(some_dict)
# {'num': 1, 'msg': 'ok', 'some_list': [], 'some_dict': {}, 'freezed': False, 'some_key': 'lalala'}