Python面试——数据结构

元气小坏坏 提交于 2020-03-01 08:23:12

1、Python中内置的4种数据结构:列表list、元组tuple、字典dict、集合set

2、python中6种基础的数据类型包括:

  1 Number(数字)

  2 String(字符串)

  3 List(列表)

  4 Tuple(元组)

  5 set(集合)

  6 Pictionary(字典)

按照可变数据和不可变数据来区分:

  不可变数据(3个):Number(数字),String(字符串),Tuple(元组)
  可变数据(3个):List(列表),Dictonary(字典),set(集合)

创建方式:

  创建列表: listT=[1,2,3,4,5]

  创建元组:tup2=(1,2,3,4,5)

  创建字典:dict2={"abc":123,"def":789}

  创建集合:student={'Tom','Jim','Mary'}

列表:列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)【插入数据可重复,数据不唯一】

listT=[1,"2",(3,4,5,6),[7,8,9],{"10":11},{12,13,14}]    #列表可以存储数据类型:数字,字符,元组,列表,字典,set 
print listT #得:[1, '2', (3, 4, 5, 6), [7, 8, 9], {'10': 11}, set([12, 13, 14])]

元组:元组(tuple)与列表类似,元组不能二次赋值。【元组本身是只读对象,如果元组中的对象是可变类型数据,可变类型数据依然可以修改】

tuple=(1,"2",(3,4,5,6),[7,8,9],{"10":11},{12,13,14})    #元组可以存储数据类型:数字,字符,元组,列表,字典,set
print tuple
print tuple[0]
print tuple[3]
tuple[3][0]=77
print tuple[3]
一下为输出测试结果:

#(1, '2', (3, 4, 5, 6), [7, 8, 9], {'10': 11}, set([12, 13, 14]))
# 1
#[7, 8, 9]
#[77, 8, 9]

字典:列表是有序的对象集合,字典是无序的对象集合【键必须是唯一的,但值则不必;值可以取任何数据类型,但键必须是不可变的】

dict2={1:1,"2":"2",(3):(3)}
print dict2   #得 {3: 3, 1: 1, '2': '2'} 元组类型发生了改变
dict2={1:1,"2":"2",(3,2):(3,2)}
print dict2  #{1: 1, (3, 2): (3, 2), '2': '2'} 元组未发生改变
dict2={1:1,"2":"2",(3,2):(3,2),4:[5],"5":{"66":"66"},(3):{"77","88"}}  #键必须是不可变的,值可以是任何类型:依次为数字,字符,元组,列表,字典,set集合
print dict2 #得 {1: 1, (3, 2): (3, 2), 3: set(['77', '88']), 4: [5], '2': '2', '5': {'66': '66'}}

集合:set是一个无序的不重复元素序列

set={1,"2",(3,2)}
print set  # 得:set([1, (3, 2), '2']) ;看到数据结构后着实让人发现原来set集合内部结构也是一个列表。这就不难理解为啥可以用set给list列表去重
set={1,"2",(3,2)}      #集合只能存放不可变类型,可变类型放入后会报错
print set
list=[4,5,6]
dict2={"9":"10"}
set={6,7,8}
#set.add(list)   #TypeError: unhashable type: 'list'
#set.add(dict2)  #TypeError: unhashable type: 'dict'
#set.add(set)     #TypeError: unhashable type: 'set'

面试常问问题:

  1  list列表可以存储的类型结构:数字,字符串,元组,列表,字典,set

  2  tuple元组可以存储数据类型:数字,字符,元组,列表,字典,set

  3  dict字典可以存储数据类型:分别说:键(不可变),值(数字,字符,元组,列表,字典,set集合)

  4  set集合可以存储数据类型:不可变类型(数字,字符,元组)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!