Python 題目

PROBLEM

Python Day 1

#python #程式碼

字典推導式(Dictionary Comprehension)是什麼?

基本語法:

'''
{key: value for 變數 in 可迭代對象}

==

result = {}
for 變數 in 可迭代對象:
    result[key] = value

''' 

進階:

'''
{key: value for 變數 in 可迭代對象}

可迭代對象 可以加上其他功能
ex:判斷式、反轉字典、合併列表

反轉字典:
original = {'a': 1, 'b': 2, 'c': 3}
inverted = {v: k for k, v in original.items()}
print(inverted)

合併列表:
keys = ["name", "age", "city"]
values = ["Alice", 25, "New York"]
person = {k: v for k, v in zip(keys, values)}
print(person)
'''

使用find()和rfind()來尋找第一個值的位置和最後一個值得位置

在使用sorted()要注意要把原本的給覆蓋掉,要不然print出來不會有排序

Format()用法

可以利用format來補0、進位轉化、小數格式化

'''
a = 50
b = 100
a,b = format(a,"020b"),format(b,"020b")
'''

Zip()用法

用於將多個可迭代對象(如列表、元組)打包成對應元素的組合

ex:配對兩個列表、處理多個列表、用於字典、用於遍歷多個列表、用於 * 解壓縮、計算 Hamming 距離

'''
用於遍歷多個列表:
students = ["Alice", "Bob", "Charlie"]
scores = [90, 85, 88]

for name, score in zip(students, scores):
    print(f"{name} 得分: {score}")

用於 * 解壓縮:
zipped_list = [('Alice', 90), ('Bob', 85), ('Charlie', 88)]
names, scores = zip(*zipped_list)

print(names)  # ('Alice', 'Bob', 'Charlie')
print(scores) # (90, 85, 88)

計算 Hamming 距離:
a = "1100101011"
b = "1001101010"

hamming_distance = sum(x != y for x, y in zip(a, b))
print(hamming_distance)

'''