當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Dictionary轉Concatenated String用法及代碼示例


有時,在使用字典時,我們可能需要執行將字典轉換為字符串(連接鍵值對)的任務。這可以應用於需要減少存儲空間或需要字符串作為目標數據的領域。讓我們討論執行此任務的某些方法。

方法一:使用空字符串+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() 函數結合使用

腳步:

  1. 定義輸入字典
  2. 使用 zip() 函數並行迭代字典的鍵和值。
  3. 使用列表理解通過 + 運算符和 str() 函數將每個鍵值對連接成一個字符串。
  4. 使用 join() 方法連接結果字符串列表。
  5. 打印連接的字符串。

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() 方法將結果列表連接成單個字符串。

腳步:

  1. 創建字典。
  2. 使用 map() 函數和 lambda 函數將每個鍵和值對連接成單個字符串。
  3. 將生成的Map對象轉換為列表。
  4. 使用 join() 方法將列表中的字符串連接成單個字符串。
  5. 返回最終的連接字符串。

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() 函數從給定字典的字符串表示形式中刪除所有非字母數字字符。

腳步:

  1. 導入 re 模塊。
  2. 定義一個字典my_dict。
  3. 使用str()函數將字典轉換為字符串。
  4. 將 re.sub() 函數應用於正則表達式模式 r'\W+' 的字符串,以刪除所有非單詞字符。
  5. 將結果字符串存儲在變量 result 中。
  6. 打印結果的值。

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 函數

腳步:

  1. 使用生成器表達式來迭代字典中的鍵值對,並使用字符串連接將它們連接起來。
  2. 將生成器表達式傳遞給 join 函數以將連接的字符串連接成單個字符串。
  3. 打印最終的連接字符串。

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 是最終連接字符串的長度。



相關用法


注:本文由純淨天空篩選整理自manjeet_04大神的英文原創作品 Python – Convert Dictionary to Concatenated String。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。