有時,在使用字典時,我們可能需要執行將字典轉換為字符串(連接鍵值對)的任務。這可以應用於需要減少存儲空間或需要字符串作為目標數據的領域。讓我們討論執行此任務的某些方法。
方法一:使用空字符串+for循環
在此方法中,我們將使用 for 循環來迭代字典對象,並繼續將鍵:值對添加到空字符串中。
Python3
# Python3 code to demonstrate working of
# Convert Dictionary to Concatenated String
# Using an empty string + for loop
# initializing dictionary
test_dict = {'gfg': 1, 'is': 2, 'best': 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Create an empty string
res = ' '
# Convert Dictionary to Concatenated String
# Using for loop and empty string
for item in test_dict:
res += item + str(test_dict[item])
# printing result
print("The dictionary after concatenation is : " + str(res))
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3} The dictionary after concatenation is : gfg1is2best3
方法二:使用join() + items()
可以使用以上函數的組合來解決這個問題。在此,我們需要使用join()執行連接任務,並使用items()完成字典項的提取。
Python3
# Python3 code to demonstrate working of
# Convert Dictionary to Concatenated String
# Using join() + items()
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Convert Dictionary to Concatenated String
# Using join() + items()
res = ''.join(key + str(val) for key, val in test_dict.items())
# printing result
print("The dictionary after concatenation is : " + str(res))
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3} The dictionary after concatenation is : gfg1is2best3
方法3:使用reduce() + lambda
上述函數的組合可用於執行此任務。在此,我們使用 reduce() 和 lambda 的組合執行串聯任務。
Python3
# Python3 code to demonstrate working of
# Convert Dictionary to Concatenated String
# Using reduce() + lambda
from functools import reduce
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Convert Dictionary to Concatenated String
# Using reduce() + lambda
res = reduce(lambda key, val : key + str(val[0]) + str(val[1]), test_dict.items(), '')
# printing result
print("The dictionary after concatenation is : " + str(res))
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3} The dictionary after concatenation is : gfg1is2best3
方法#4:將列表理解與 zip() 函數結合使用
腳步:
- 定義輸入字典
- 使用 zip() 函數並行迭代字典的鍵和值。
- 使用列表理解通過 + 運算符和 str() 函數將每個鍵值對連接成一個字符串。
- 使用 join() 方法連接結果字符串列表。
- 打印連接的字符串。
Python3
# Define the input dictionary
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Convert dictionary to concatenated string using a list comprehension with zip() function
concatenated_string = ''.join([str(x) + str(y) for x, y in zip(my_dict.keys(), my_dict.values())])
# Print the concatenated string
print("The dictionary after concatenation is : ", concatenated_string)
The dictionary after concatenation is : gfg1is2best3
時間複雜度:O(n)。此方法中的 zip() 函數的時間複雜度為 O(n),其中 n 是字典中的項目數。列表推導式的時間複雜度為 O(n),其中 n 是字典中的項目數。 join() 方法的時間複雜度為 O(n),其中 n 是結果字符串的長度。
輔助空間:O(n)。此方法使用列表理解創建字符串列表,其空間複雜度為 O(n),其中 n 是字典中的項目數。 join() 方法還會創建一個新的字符串對象,其空間複雜度為 O(n),其中 n 是結果字符串的長度。
方法 5:使用map() 函數
方法:
使用 map() 函數和 lambda 函數將鍵和值連接成單個字符串,然後使用 join() 方法將結果列表連接成單個字符串。
腳步:
- 創建字典。
- 使用 map() 函數和 lambda 函數將每個鍵和值對連接成單個字符串。
- 將生成的Map對象轉換為列表。
- 使用 join() 方法將列表中的字符串連接成單個字符串。
- 返回最終的連接字符串。
Python3
# Initializing dictionary
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Concatenate keys and values into a list
# using map() with a lambda function
result_list = list(map(lambda x: x[0] + str(x[1]), my_dict.items()))
# Concatenating the list items into a single string
result = "".join(result_list)
# Printing answer
print(result)
gfg1is2best3
時間複雜度:O(n),其中 n 是字典中的項目數。 map()函數、列表轉換和join()方法的時間複雜度均為O(n),因此總體時間複雜度為O(n)。
輔助空間:O(n),其中 n 是字典中的項目數。 map() 函數創建一個需要 O(n) 空間的映射對象,並且生成的列表也需要 O(n) 空間。最終的連接字符串也需要 O(n) 空間。所以整體的空間複雜度是O(n)。
方法6:使用re.sub()方法
直覺:我們使用 re.sub() 函數從給定字典的字符串表示形式中刪除所有非字母數字字符。
腳步:
- 導入 re 模塊。
- 定義一個字典my_dict。
- 使用str()函數將字典轉換為字符串。
- 將 re.sub() 函數應用於正則表達式模式 r'\W+' 的字符串,以刪除所有非單詞字符。
- 將結果字符串存儲在變量 result 中。
- 打印結果的值。
Python3
import re
# Initializing list
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
result = re.sub(r'\W+', '', str(my_dict))
# Printing answer
print(result)
gfg1is2best3
時間複雜度:O(N),其中 n 是結果字符串的長度。這是因為 re.sub() 函數會遍曆字符串中的每個字符一次。
輔助空間:O(N),其中 n 是結果字符串的長度。這是因為我們創建了一個僅包含字母數字字符的新字符串。
方法 7:使用生成器表達式 + join 函數
腳步:
- 使用生成器表達式來迭代字典中的鍵值對,並使用字符串連接將它們連接起來。
- 將生成器表達式傳遞給 join 函數以將連接的字符串連接成單個字符串。
- 打印最終的連接字符串。
Python3
# Iniializing dictionary
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Concatenate keys and values into a single string
# using generator expression and join function
result = "".join(key + str(value) for key, value in my_dict.items())
# Pinting answer
print(result)
gfg1is2best3
該方法的時間複雜度為O(n),其中n是字典中鍵值對的數量。
使用的輔助空間為 O(n),其中 n 是最終連接字符串的長度。
相關用法
- Python Dictionary轉List用法及代碼示例
- Python Dictionary clear()用法及代碼示例
- Python Dictionary copy()用法及代碼示例
- Python Dictionary fromkeys()用法及代碼示例
- Python Dictionary get()用法及代碼示例
- Python Dictionary items()用法及代碼示例
- Python Dictionary keys()用法及代碼示例
- Python Dictionary popitem()用法及代碼示例
- Python Dictionary setdefault()用法及代碼示例
- Python Dictionary pop()用法及代碼示例
- Python Dictionary values()用法及代碼示例
- Python Dictionary update()用法及代碼示例
- Python Dictionary has_key()用法及代碼示例
- Python Dictionary clear方法用法及代碼示例
- Python Dictionary pop方法用法及代碼示例
- Python Dictionary values方法用法及代碼示例
- Python Dictionary fromkeys方法用法及代碼示例
- Python Dictionary get方法用法及代碼示例
- Python Dictionary update方法用法及代碼示例
- Python Dictionary popitem方法用法及代碼示例
- Python Dictionary copy方法用法及代碼示例
- Python Dictionary setdefault方法用法及代碼示例
- Python Dictionary items方法用法及代碼示例
- Python Dictionary keys方法用法及代碼示例
- Python Decimal same_quantum()用法及代碼示例
注:本文由純淨天空篩選整理自manjeet_04大神的英文原創作品 Python – Convert Dictionary to Concatenated String。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。