二.数据类型
1.字典
1.1说一下字典和 json 的区别?
字典是一种数据结构,json 是一种数据的表现形式,字典的 key 值只要是能 hash 的就行,json 的必须是字符串
1.2什么是可变、不可变类型?
可变不可变指的是内存中的值是否可以被改变,不可变类型指的是对象所在内存块里面的值不可以改变,有数值、字符串、元组;可变类型则是可以改变,主要有列表、字典。
1.3 字典推导式?
d = {key: value for (key, value) in iterable}
1.4字典排序
# 请按字 典中的 value值进行排序
d = {'a': 24, 'g': 52, 'l': 12, 'k': 33}
sorted(d.items(), key=lambda x: x[1]) # [('l', 12), ('a', 24), ('k', 33), ('g', 52)]
2.字符串
2.1 如何理解 Python 中字符串中的字符?
有三种不同的含义:
1、转义字符
2、路径名中用来连接路径名
3、编写太长代码手动软换行
2.2 请反转字符串“aStr”?
str1 = "aStr"
str2 = str1[::-1]
2.3 请按 alist 中元素的 age 由大到小排序
alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def sort_by_age(lst):
return sorted(lst, key=lambda x:x['age'], reverse=True)
res = sort_by_age(alist)
3.列表
3.1 写一个列表生成式,产生一个公差为 11 的等差数列
[i*11 for i in range(10)]
3.2 给定两个列表,怎么找出他们相同的元素和不同的元素?
list1 = [1, 2, 3]
list2 = [3, 4, 5]
set1 = set(list1)
set2 = set(list2)
print(set1&set2)
print(set1^set2)
3.3 下面这段代码的输出结果是什么?请解释?
def extend_list(val, lst=[]):
lst.append(val)
return lst
list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')
print(list1, list2, list3, sep='
')
新的默认列表只在函数被定义的那一刻创建一次。当 extendList 被没有指定特定参数 list 调用时,这组 list 的值随后将被使用。这是因为带有默认参数的表达式在函数被定义的时候被计算,不是在调用的时候被计算
4.元组
tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找,使用括号”()”;
应用场景:把一些数据当做一个整体去使用,不能修改;
5.集合
set:set 集合,在 Python 中的书写方式的{},集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的。集合对象还支持
union(联合)
intersection(交)
difference(差)
sysmmetric_difference(对称差集)
等数学运算