python面試常見問題及知識點整理之列表、字典與綜合部分

• 數(shù)據(jù)類型 - 列表
1.已知 AList = [1,2,3,1,2]
,對 AList 列表元素去重,寫出具體過程。
2.如何實現(xiàn) "1,2,3" 變成 ["1","2","3"]
3.給定兩個 list,A 和 B,找出相同元素和不同元素
4. [[1,2],[3,4],[5,6]]
一行代碼展開該列表,得出 [1,2,3,4,5,6]
5. 合并列表 [1,5,7,9]
和 [2,2,6,8]
6. 如何列表的元素?
• 數(shù)據(jù)類型 - 字典
1.字典操作中 del 和 pop 有什么區(qū)別
2. 按照字典的內的年齡排序
d1 = [ {'name':'alice', 'age':38}, {'name':'bob', 'age':18}, {'name':'Carl', 'age':28}, ]
3. 請合并下面兩個字典 a = {"A":1,"B":2}
,b = {"C":3,"D":4}
4. 如何使用生成式的方式生成一個字典,寫一段功能代碼。
5. 如何把元組 ("a","b")
和元組 (1,2)
,變?yōu)樽值?{"a":1,"b":2}
• 數(shù)據(jù)類型 - 綜合
1.下列字典對象鍵類型不正確的是?
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}
2. 如何交換字典 {"A":1,"B":2}的鍵和值
3. Python 里面如何實現(xiàn) tuple 和 list 的轉換?
4. 我們知道對于列表可以使用切片操作進行部分元素的選擇,那么如何對生成器類型的對象實現(xiàn)相同的功能呢?
5. 請將 [i for i in range(3)]
改成生成器
6. a="hello" 和 b="你好" 編碼成 bytes 類型
7. 下面的代碼輸出結果是什么?
a = (1,2,3,[4,5,6,7],8) a[2] = 2
8. 下面的代碼輸出的結果是什么?
a = (1,2,3,[4,5,6,7],8) a[3][0] = 2
列表:
1.已知 AList = [1,2,3,1,2]
,對 AList 列表元素去重,寫出具體過程。
答:
list(set(AList))
2.如何實現(xiàn) "1,2,3" 變成 ["1","2","3"]
答:
s = "1,2,3" print(s.split(","))
3.[[1,2],[3,4],[5,6]] 一行代碼展開該列表,得出 [1,2,3,4,5,6]
答:
l = [[1,2],[3,4],[5,6]] x=[j for i in l for j in i] print(x)
4.合并列表 [1,5,7,9] 和 [2,2,6,8]
答:使用 extend 和 + 都可以。
a = [1,5,7,9] b = [2,2,6,8] a.extend(b) print(a)
5.如何打亂一個列表的元素?
答:
import random a = [1, 2, 3, 4, 5] random.shuffle(a) print(a)
數(shù)據(jù)類型 - 字典
1.字典操作中 del 和 pop 有什么區(qū)別
答:
del 可以根據(jù)索引(元素所在位置)來刪除的,沒有返回值。 pop 可以根據(jù)索引彈出一個值,然后可以接收它的返回值。
2.按照字典的內的年齡排序
d1 = [ {'name':'alice', 'age':38}, {'name':'bob', 'age':18}, {'name':'Carl', 'age':28}, ]
答:
d1 = [ {'name': 'alice', 'age': 38}, {'name': 'bob', 'age': 18}, {'name': 'Carl', 'age': 28}, ] print(sorted(d1, key=lambda x:x["age"]))
3.請合并下面兩個字典 a = {"A":1,"B":2},b = {"C":3,"D":4}
答:
合并字典方法很多,可以使用 a.update(b) 或者下面字典解包的方式
a = {"A":1,"B":2} b = {"C":3,"D":4} print({**a,**b})
4.如何使用生成式的方式生成一個字典,寫一段功能代碼。
答:
# 需求 3: 把字典的 key 和 value 值調換; d = {'a':'1', 'b':'2'} print({v:k for k,v in d.items()})
5.如何把元組 ("a","b") 和元組 (1,2),變?yōu)樽值?{"a":1,"b":2}
答 :
zip 的使用,但是最后記得把 zip 對象再轉換為字典。
a = ("a", "b") b = (1, 2) print(dict(zip(a, b)))
數(shù)據(jù)類型 - 綜合
1.下列字典對象鍵類型不正確的是?
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 的對象才能做字典的鍵,列表是可變類型不是可 hash 對象,所以不能用列表做為字典的鍵。
2.如何交換字典 {"A":1,"B":2}的鍵和值
答:
s = {"A":1,"B":2} #方法一: dict_new = {value:key for key,value in s.items()} # 方法二: new_s= dict(zip(s.values(),s.keys()))
3.Python 里面如何實現(xiàn) tuple 和 list 的轉換?
答:
Python 中的類型轉換,一般通過類型強轉即可完成 tuple 轉 list 是 list() 方法 list 轉 tuple 使用 tuple() 方法
4.我們知道對于列表可以使用切片操作進行部分元素的選擇,那么如何對生成器類型的對象實現(xiàn)相同的功能呢?
答:
這個題目考察了 Python 標準庫的 itertools ??斓恼莆涨闆r,該模塊提供了操作生成器的一些方法。 對于生成器類型我們使用 islice 方法來實現(xiàn)切片的功能。例子如下
from itertools import islice gen = iter(range(10)) #iter()函數(shù)用來生成迭代器 #第一個參數(shù)是迭代器,第二個參數(shù)起始索引,第三個參數(shù)結束索引,不支持負數(shù)索引 for i in islice(gen,0,4): print(i)
5.請將 [i for i in range(3)] 改成生成器
答:通過把列表生產式的中括號,改為小括號我們就實現(xiàn)了生產器的功能即,
(i for i in range(3))
6.a="hello" 和 b="你好" 編碼成 bytes 類型
答:
這個題目一共三種方式,第一種是在字符串的前面加一個 b,第二種可以使用 bytes 方法,第三種使用字符串 encode 方法。具體代碼如下,abc 代表三種情況
a = b"hello" b = bytes("你好", "utf-8") c = "你好".encode("utf-8") print(a, b, c)
7.下面的代碼輸出結果是什么?
a = (1,2,3,[4,5,6,7],8) a[2] = 2
答:
我們知道元組里的元素是不能改變的所以這個題目的答案是出現(xiàn)異常。
8.下面的代碼輸出的結果是什么?
a = (1,2,3,[4,5,6,7],8) a[3][0] = 2
答:
前面我說了元組的里元素是不能改變的,這句話嚴格來說是不準確的,如果元組里面元素本身就是可變類型,比如列表,那么在操作這個元素里的對象時,其內存地址也是不變的。a[3] 對應的元素是列表,然后對列表第一個元素賦值,所以最后的結果是:
(1,2,3,[2,5,6,7],8)
相關文章
- 這篇文章主要介紹了兩道阿里python面試題與參考答案,結合具體實例形式分析了Python數(shù)組創(chuàng)建、遍歷、拆分及隨機數(shù)等相關操作技巧,需要的朋友可以參考下2019-09-02
- 這篇文章主要介紹了60道硬核Python面試題,論面霸是如何煉成的,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-08-28
- 這篇文章主要介紹了關于Python爬蟲面試170道題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-08-15
- Python是目前編程領域最受歡迎的語言。在本文中,我將總結Python面試中最常見的50個問題。每道題都提供參考答案,感興趣的可以了解下2019-06-26
- 這篇文章主要為大家介紹了Python常見的面試題與相應的Python知識點,包括Python變量、函數(shù)、對象、數(shù)據(jù)類型等,需要的朋友可以參考下2019-06-25
- 這篇文章主要介紹了110道Python面試題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-24
- 這篇文章主要介紹了春招面試,看這110道Python面試題就夠了,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-15
- 這篇文章主要介紹了大數(shù)據(jù)相關常見面試題與答案,總結分析了大數(shù)據(jù)相關的概念、技術、原理,需要的朋友可以參考下2019-10-21
- 這篇文章主要介紹了數(shù)據(jù)挖掘常見面試題與參考答案,簡單分析了數(shù)據(jù)挖掘面試中比較常見的概念、知識點與解答技巧,需要的朋友可以參考下2019-10-17
- 這篇文章主要介紹了大數(shù)據(jù)spark精華面試題與參考答案,整理總結了大數(shù)據(jù)spark面試中經常遇到的各類問題、概念與知識點,需要的朋友可以參考下2019-10-15