170道Python面试题:数据类型

数据类型

19.列举 Python 中的基本数据类型?
答:Python3中有6种基本数据类型,列表(list)、元组(tuble)、字典(dict)、集合(sets)、字符串(string)、数字(digit)。

20. 如何区别可变数据类型和不可变数据类型
答:可变数据类型:在内存地址不变的情况下,值可以改变(列表字典是可变,字典的key不可变)
不可变数据类型:当数据的值改变的时候内存地址也会发生改变。

21. 将"hello world"转换为首字母大写"Hello World"
答:

“hello world”.title()

22. 如何检测字符串中只含有数字?

  '123bp'.isdigit()----------返回True or False
   #或者使用正则:
   bool(re.search(r’\d’,’qw123’))
   #或者使用Unicode码:
   if uchar >= u'\u0030' and uchar <= u'\u0039'

23. 将字符串"ilovechina"进行反转

"ilovechina"[::-1]

24. Python 中的字符串格式化方式你知道哪些?

'I %s her %s'%('love','cat')
'I {a} her {b}'.format(a='love',b='cat')
f'I {a} her {b}' #【Python3.6推荐写法】

25. 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。

def strip_function(str_):
      return str_.strip()

26. 获取字符串”123456“最后的两个字符。

Str[-2: ]

27. 一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?

encode('gbk')#以gbk方式编码;
decode('utf-8',ignore) #以utf-8方式解码。

28. (1)s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]。
(2)a = "你好 中国 ",去除多余空格只留一个空格。

 (1)
 re.split(r":| ", s)
 (2)
 ''.join(s.split())

29. (1) 怎样将字符串转换为小写。
(2) 单引号、双引号、三引号的区别?

(1).字符串大小写转换:upper,lower
(2).单引号和双引号可以相互包含,在单引号中使用双引号不需要转义,\n 而三引号一般用于需要换行的字符串,它可以不使用换行符\n即可换行

数据类型 - 列表

30. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。

 list(set(AList))
  1. 如何实现 “1,2,3” 变成 [“1”,“2”,“3”]
s.split(",")

32. 给定两个 list,A 和 B,找出相同元素和不同元素

A、B 中相同元素:set(A)&set(B)
A、B 中不同元素:set(A)^set(B)

33. [[1,2],[3,4],[5,6]] 一行代码展开该列表,得出 [1,2,3,4,5,6]

x=[j for i in l for j in i]

34. 合并列表 [1,5,7,9] 和 [2,2,6,8]

 L1.extend(L2)  OR   L1+L2
 L1.append(l2)::不可以,会把整个表添加进去:结果是[1, 5, 7, 9, [2, 2, 6, 8]]

35. 如何打乱一个列表的元素?

random.shuffle(l1)

数据类型 - 字典

36. 字典操作中 del 和 pop 有什么区别
答:
del d[key] 直接删除
d.pop(key) 返回键的值
37. 按照字典的内的年龄排序
d1 = [
{‘name’:‘alice’, ‘age’:38},
{‘name’:‘bob’, ‘age’:18},
{‘name’:‘Carl’, ‘age’:28},
]

 sorted(d1,key=lambda x:x['age'])

38. 请合并下面两个字典 a = {“A”:1,“B”:2},b = {“C”:3,“D”:4}

a.update(b)

39. 如何把元组 (“a”,“b”) 和元组 (1,2),变为字典 {“a”:1,“b”:2}

 dict(zip(a,b))

40. 下列字典对象键类型不正确的是?
A:{1:0,2:0,3:0}
B:{“a”:0, “b”:0, “c”:0}
C: {(1,2):0, (2,3):0}
D: {[1,2]:0, [2,3]:0}

答: D:列表不是可hash对象,不可以作为字典的键; List,set,dict不可哈希对象
42. 如何交换字典 {“A”:1,“B”:2}的键和值

  {value:key for key value in dict.items()}

43. Python 里面如何实现 tuple 和 list 的转换?

 tuple(list)

44. 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?
答: 这个题目考察了 Python 标准库的 itertools 模快的掌握情况,该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。

from itertools import islice
   for  i  in islice(gen,0,1):#gen生成器
        print(i)

45. 请将 [i for i in range(3)] 改成生成器

(i for i in range(3)

46. a=“hello” 和 b=“你好” 编码成 bytes 类型

b'hello'
'hello'.encode('utf-8')
bytes('hello',encoding='utf-8')

47.下面的代码输出结果是什么?
a = (1,2,3,[4,5,6,7],8)
a[2] = 2

答:会报错,元组对象不可变

48.Python 交换两个变量的值
答:语法糖 a, b = b, a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值