一、字典
dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;
应用场景:使用键和值进行关联的数据;
1.现有字典 d={‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按字典中的 value值进行排序?
# sorted(dict.items(), key=lambda e:e[0], reverse=True)
d = {
4: 1, 5: 2, 20: 34}
# 对字典按键排序,用元组列表的形式返回
d1 = sorted(d.items(), key=lambda d: d[0], reverse=False)
# 对字典按值排序,用元组列表的形式返回
d2 = sorted(d.items(), key=lambda d: d[1], reverse=True)
print(d1, '\n', d2)
[(4, 1), (5, 2), (20, 34)]
[(20, 34), (5, 2), (4, 1)]
#里面三个参数
#dict.items() 可迭代元素。
#key= lambda d:d[0] d[0]表示按键,d[1]表示按值。
#reverse默认是False,升序排列。当值为True时是降序排列。
#返回的是一个列表,列表中是排列后的元组。
#如果想返回字典可用dict()函数转化.
2、说一下字典和 json 的区别?
字典是一种数据结构,json 是一种数据的表现形式,字典的 key 值只要是能 hash 的就行,json 的必须是字符串。
Hash算法总结
3、什么是可变、不可变类型?
可变不可变指的是内存中的值是否可以被改变,不可变类型指的是对象所在内存块里面的值不可以改变,有数值、字符串、元组;可变类型则是可以改变,主要有列表、字典。
4、存入字典里的数据有没有先后排序?
存入的数据不会自动排序,可以使用 sort 函数对字典进行排序。
5、字典推导式?
d = {
key: value for (key, value) in iterable}
二、字符创
str:字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串
1、如何理解 Python 中字符串中的\字符?
1、转义字符 2、路径名中用来连接路径名 3、编写太长代码手动换行。
2、请反转字符串“aStr”?
print("aStr"[::-1])
3、将字符串"k:1|k1:2|k2:3|k3:4",处理成 Python 字典:{k:1, k1:2, … } # 字典里的 K 作为字符串处理
str1 = "k:1|k1:2|k2:3|k3:4"
def str2dict(str1):
dict1 = {
}
for iterms in str1.split('|'):
key, value = iterms.split(':')
dict1[key] = value
return dict1
4、请按 alist 中元素的 age 由大到小排序。
alist = [{
'name': 'a', 'age': 20}, {
'name': 'b', 'age': 30}, {
'name': 'c', 'age': 25}]
def sort_by_age(alist):
return sorted(alist, key=lambda x: x['age'], reverse=True)
三、列表
list:是 Python 中使用最频繁的数据类型,在其他语言中通常叫做数组,通过索引进行查找,使用方括号”[ ]”,列表是有序的集合。
应用场景:定义列表使用 [ ] 定义,数据之间使用 “,”分割。
列表的索引从 0 开始:索引就是数据在列表中的位置编号,索引又可以被称为下标。
【注意】: 从列表中取值时,如果超出索引范围,程序会产生异常。IndexError: list index out of range
列表的常用操作:
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
1.增加
1.1 列表名.insert(index, 数据):在指定位置插入数据
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
# 往列表 name_list 下标为 0 的地方插入数据
name_list.insert(0, "Sasuke")
print(name_list)
['Sasuke', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu']
# 现有的列表下标是 0-4,如果我们要在下标是 6 的地方插入数据,那个会自动插入到下标为 5 的地方,也就是插入到最后
name_list.insert(6, "Tom")
print(name_list)
['Sasuke', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'Tom']
1.2 列表名.append(数据):在列表的末尾追加数据(最常用的方法)。
name_list.append("Python")
print(name_list)
['Sasuke', 'zhangsan',