Python数据类型面试题(字典、字符创、列表、元祖、集合)

一、字典
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', 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值